{
 "instance": {
  "nvee-20221231.htm": {
   "axisCustom": 1,
   "axisStandard": 25,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2022": 1063,
    "http://xbrl.sec.gov/dei/2022": 38
   },
   "contextCount": 271,
   "dts": {
    "calculationLink": {
     "local": [
      "nvee-20221231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "nvee-20221231_def.xml"
     ]
    },
    "inline": {
     "local": [
      "nvee-20221231.htm"
     ]
    },
    "labelLink": {
     "local": [
      "nvee-20221231_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "nvee-20221231_pre.xml"
     ]
    },
    "schema": {
     "local": [
      "nvee-20221231.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/net-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/reference-2009-12-16.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-2022.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-roles-2022.xsd",
      "https://xbrl.fasb.org/srt/2022/elts/srt-types-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-gaap-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-roles-2022.xsd",
      "https://xbrl.fasb.org/us-gaap/2022/elts/us-types-2022.xsd",
      "https://xbrl.sec.gov/country/2022/country-2022.xsd",
      "https://xbrl.sec.gov/dei/2022/dei-2022.xsd"
     ]
    }
   },
   "elementCount": 618,
   "entityCount": 1,
   "hidden": {
    "http://fasb.org/us-gaap/2022": 11,
    "http://xbrl.sec.gov/dei/2022": 4,
    "total": 15
   },
   "keyCustom": 49,
   "keyStandard": 366,
   "memberCustom": 25,
   "memberStandard": 34,
   "nsprefix": "nvee",
   "nsuri": "http://www.nv5.com/20221231",
   "report": {
    "R1": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "document",
     "isDefault": "true",
     "longName": "0000001 - Document - Cover",
     "menuCat": "Cover",
     "order": "1",
     "role": "http://www.nv5.com/role/Cover",
     "shortName": "Cover",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R10": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000010 - Disclosure - Recently Issued Accounting Pronouncements",
     "menuCat": "Notes",
     "order": "10",
     "role": "http://www.nv5.com/role/RecentlyIssuedAccountingPronouncements",
     "shortName": "Recently Issued Accounting Pronouncements",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R11": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000011 - Disclosure - Earnings per Share",
     "menuCat": "Notes",
     "order": "11",
     "role": "http://www.nv5.com/role/EarningsperShare",
     "shortName": "Earnings per Share",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R12": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000012 - Disclosure - Stockholders' Equity",
     "menuCat": "Notes",
     "order": "12",
     "role": "http://www.nv5.com/role/StockholdersEquity",
     "shortName": "Stockholders' Equity",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:StockholdersEquityNoteDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R13": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000013 - Disclosure - Business Acquisitions",
     "menuCat": "Notes",
     "order": "13",
     "role": "http://www.nv5.com/role/BusinessAcquisitions",
     "shortName": "Business Acquisitions",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R14": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000014 - Disclosure - Billed and Unbilled Receivables",
     "menuCat": "Notes",
     "order": "14",
     "role": "http://www.nv5.com/role/BilledandUnbilledReceivables",
     "shortName": "Billed and Unbilled Receivables",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R15": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000015 - Disclosure - Property and Equipment, net",
     "menuCat": "Notes",
     "order": "15",
     "role": "http://www.nv5.com/role/PropertyandEquipmentnet",
     "shortName": "Property and Equipment, net",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R16": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000016 - Disclosure - Goodwill and Intangible Assets",
     "menuCat": "Notes",
     "order": "16",
     "role": "http://www.nv5.com/role/GoodwillandIntangibleAssets",
     "shortName": "Goodwill and Intangible Assets",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R17": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000017 - Disclosure - Accrued Liabilities",
     "menuCat": "Notes",
     "order": "17",
     "role": "http://www.nv5.com/role/AccruedLiabilities",
     "shortName": "Accrued Liabilities",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R18": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000018 - Disclosure - Notes Payable and Other Obligations",
     "menuCat": "Notes",
     "order": "18",
     "role": "http://www.nv5.com/role/NotesPayableandOtherObligations",
     "shortName": "Notes Payable and Other Obligations",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R19": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LossContingencyDisclosures",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000019 - Disclosure - Contingent Consideration",
     "menuCat": "Notes",
     "order": "19",
     "role": "http://www.nv5.com/role/ContingentConsideration",
     "shortName": "Contingent Consideration",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LossContingencyDisclosures",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R2": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:AuditorName",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "document",
     "isDefault": "false",
     "longName": "0000002 - Document - Audit Information",
     "menuCat": "Cover",
     "order": "2",
     "role": "http://www.nv5.com/role/AuditInformation",
     "shortName": "Audit Information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:AuditorName",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R20": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000020 - Disclosure - Leases",
     "menuCat": "Notes",
     "order": "20",
     "role": "http://www.nv5.com/role/Leases",
     "shortName": "Leases",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R21": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000021 - Disclosure - Commitments and Contingencies",
     "menuCat": "Notes",
     "order": "21",
     "role": "http://www.nv5.com/role/CommitmentsandContingencies",
     "shortName": "Commitments and Contingencies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R22": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000022 - Disclosure - Stock-Based Compensation",
     "menuCat": "Notes",
     "order": "22",
     "role": "http://www.nv5.com/role/StockBasedCompensation",
     "shortName": "Stock-Based Compensation",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R23": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000023 - Disclosure - Employee Benefit Plan",
     "menuCat": "Notes",
     "order": "23",
     "role": "http://www.nv5.com/role/EmployeeBenefitPlan",
     "shortName": "Employee Benefit Plan",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R24": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000024 - Disclosure - Income Taxes",
     "menuCat": "Notes",
     "order": "24",
     "role": "http://www.nv5.com/role/IncomeTaxes",
     "shortName": "Income Taxes",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R25": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000025 - Disclosure - Reportable Segments",
     "menuCat": "Notes",
     "order": "25",
     "role": "http://www.nv5.com/role/ReportableSegments",
     "shortName": "Reportable Segments",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R26": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000026 - Disclosure - Subsequent Events",
     "menuCat": "Notes",
     "order": "26",
     "role": "http://www.nv5.com/role/SubsequentEvents",
     "shortName": "Subsequent Events",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R27": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nvee:BasisOfPresentationAndPrinciplesOfConsolidationPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000027 - Disclosure - Summary of Significant Accounting Policies (Policies)",
     "menuCat": "Policies",
     "order": "27",
     "role": "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies",
     "shortName": "Summary of Significant Accounting Policies (Policies)",
     "subGroupType": "policies",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nvee:BasisOfPresentationAndPrinciplesOfConsolidationPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R28": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nvee:ScheduleOfPropertyPlantAndEquipmentEstimatedUsefulLifeTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000028 - Disclosure - Summary of Significant Accounting Policies (Tables)",
     "menuCat": "Tables",
     "order": "28",
     "role": "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesTables",
     "shortName": "Summary of Significant Accounting Policies (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nvee:ScheduleOfPropertyPlantAndEquipmentEstimatedUsefulLifeTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R29": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000029 - Disclosure - Earnings per Share (Tables)",
     "menuCat": "Tables",
     "order": "29",
     "role": "http://www.nv5.com/role/EarningsperShareTables",
     "shortName": "Earnings per Share (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R3": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "0000003 - Statement - CONSOLIDATED BALANCE SHEETS",
     "menuCat": "Statements",
     "order": "3",
     "role": "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS",
     "shortName": "CONSOLIDATED BALANCE SHEETS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R30": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000030 - Disclosure - Business Acquisitions (Tables)",
     "menuCat": "Tables",
     "order": "30",
     "role": "http://www.nv5.com/role/BusinessAcquisitionsTables",
     "shortName": "Business Acquisitions (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R31": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000031 - Disclosure - Billed and Unbilled Receivables (Tables)",
     "menuCat": "Tables",
     "order": "31",
     "role": "http://www.nv5.com/role/BilledandUnbilledReceivablesTables",
     "shortName": "Billed and Unbilled Receivables (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R32": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000032 - Disclosure - Property and Equipment, net (Tables)",
     "menuCat": "Tables",
     "order": "32",
     "role": "http://www.nv5.com/role/PropertyandEquipmentnetTables",
     "shortName": "Property and Equipment, net (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R33": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000033 - Disclosure - Goodwill and Intangible Assets (Tables)",
     "menuCat": "Tables",
     "order": "33",
     "role": "http://www.nv5.com/role/GoodwillandIntangibleAssetsTables",
     "shortName": "Goodwill and Intangible Assets (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R34": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000034 - Disclosure - Accrued Liabilities (Tables)",
     "menuCat": "Tables",
     "order": "34",
     "role": "http://www.nv5.com/role/AccruedLiabilitiesTables",
     "shortName": "Accrued Liabilities (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R35": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfDebtInstrumentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000035 - Disclosure - Notes Payable and Other Obligations (Tables)",
     "menuCat": "Tables",
     "order": "35",
     "role": "http://www.nv5.com/role/NotesPayableandOtherObligationsTables",
     "shortName": "Notes Payable and Other Obligations (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfDebtInstrumentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R36": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionContingentConsiderationTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000036 - Disclosure - Contingent Consideration (Tables)",
     "menuCat": "Tables",
     "order": "36",
     "role": "http://www.nv5.com/role/ContingentConsiderationTables",
     "shortName": "Contingent Consideration (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionContingentConsiderationTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R37": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nvee:BalanceSheetClassificationOfOperatingAndFinanceLeasesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000037 - Disclosure - Leases (Tables)",
     "menuCat": "Tables",
     "order": "37",
     "role": "http://www.nv5.com/role/LeasesTables",
     "shortName": "Leases (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "nvee:BalanceSheetClassificationOfOperatingAndFinanceLeasesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R38": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000038 - Disclosure - Stock-Based Compensation (Tables)",
     "menuCat": "Tables",
     "order": "38",
     "role": "http://www.nv5.com/role/StockBasedCompensationTables",
     "shortName": "Stock-Based Compensation (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R39": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000039 - Disclosure - Income Taxes (Tables)",
     "menuCat": "Tables",
     "order": "39",
     "role": "http://www.nv5.com/role/IncomeTaxesTables",
     "shortName": "Income Taxes (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R4": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:PreferredStockParOrStatedValuePerShare",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PreferredStockParOrStatedValuePerShare",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usdPerShare",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "0000004 - Statement - CONSOLIDATED BALANCE SHEETS (Parentheticals)",
     "menuCat": "Statements",
     "order": "4",
     "role": "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETSParentheticals",
     "shortName": "CONSOLIDATED BALANCE SHEETS (Parentheticals)",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:PreferredStockParOrStatedValuePerShare",
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PreferredStockParOrStatedValuePerShare",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usdPerShare",
      "xsiNil": "false"
     }
    },
    "R40": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000040 - Disclosure - Reportable Segments (Tables)",
     "menuCat": "Tables",
     "order": "40",
     "role": "http://www.nv5.com/role/ReportableSegmentsTables",
     "shortName": "Reportable Segments (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfSegmentReportingInformationBySegmentTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R41": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:ImpairmentOfLongLivedAssetsHeldForUse",
       "us-gaap:ImpairmentOfLongLivedAssetsHeldForUse",
       "ix:continuation",
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ImpairmentOfLongLivedAssetsHeldForUse",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000041 - Disclosure - Summary of Significant Accounting Policies - Narrative (Details)",
     "menuCat": "Details",
     "order": "41",
     "role": "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails",
     "shortName": "Summary of Significant Accounting Policies - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:ImpairmentOfLongLivedAssetsHeldForUse",
       "us-gaap:ImpairmentOfLongLivedAssetsHeldForUse",
       "ix:continuation",
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ImpairmentOfLongLivedAssetsHeldForUse",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R42": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "nvee:ScheduleOfPropertyPlantAndEquipmentEstimatedUsefulLifeTableTextBlock",
       "div",
       "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i1ac83dbe88cc44109d24cb7ee0facbd9_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000042 - Disclosure - Summary of Significant Accounting Policies - Estimated Useful Lives of Property and Equipment (Details)",
     "menuCat": "Details",
     "order": "42",
     "role": "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesEstimatedUsefulLivesofPropertyandEquipmentDetails",
     "shortName": "Summary of Significant Accounting Policies - Estimated Useful Lives of Property and Equipment (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "nvee:ScheduleOfPropertyPlantAndEquipmentEstimatedUsefulLifeTableTextBlock",
       "div",
       "us-gaap:PropertyPlantAndEquipmentPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i1ac83dbe88cc44109d24cb7ee0facbd9_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R43": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000043 - Disclosure - Summary of Significant Accounting Policies - Revenue Recognition (Details)",
     "menuCat": "Details",
     "order": "43",
     "role": "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesRevenueRecognitionDetails",
     "shortName": "Summary of Significant Accounting Policies - Revenue Recognition (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueRemainingPerformanceObligation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R44": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ContractWithCustomerLiability",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000044 - Disclosure - Recently Issued Accounting Pronouncements (Details)",
     "menuCat": "Details",
     "order": "44",
     "role": "http://www.nv5.com/role/RecentlyIssuedAccountingPronouncementsDetails",
     "shortName": "Recently Issued Accounting Pronouncements (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i13c25d4babfc449c9571b42aff57c3a9_I20220101",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:ContractWithCustomerLiability",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R45": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000045 - Disclosure - Earnings Per Share - Narrative (Details)",
     "menuCat": "Details",
     "order": "45",
     "role": "http://www.nv5.com/role/EarningsPerShareNarrativeDetails",
     "shortName": "Earnings Per Share - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "0",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R46": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000046 - Disclosure - Earnings per Share - Schedule of Earnings Per Share, Basic and Diluted (Details)",
     "menuCat": "Details",
     "order": "46",
     "role": "http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails",
     "shortName": "Earnings per Share - Schedule of Earnings Per Share, Basic and Diluted (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R47": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ProceedsFromIssuanceOfCommonStock",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000047 - Disclosure - Stockholders' Equity (Details)",
     "menuCat": "Details",
     "order": "47",
     "role": "http://www.nv5.com/role/StockholdersEquityDetails",
     "shortName": "Stockholders' Equity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia947860ca5454206b0035e8e7ca0b0bb_D20210310-20210310",
      "decimals": "INF",
      "lang": "en-US",
      "name": "us-gaap:StockIssuedDuringPeriodSharesNewIssues",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R48": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i9e55b72dca024e4eb093f094523efc3b_D20210103-20220101",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationConsiderationTransferred1",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000048 - Disclosure - Business Acquisitions - Narrative (Details)",
     "menuCat": "Details",
     "order": "48",
     "role": "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails",
     "shortName": "Business Acquisitions - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationAcquisitionRelatedCosts",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R49": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i5926f9ca4a7140d8b6c8453016157bdf_I20220101",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000049 - Disclosure - Business Acquisitions - Summary of the Fair Values of Assets Acquired and Liabilities Assumed (Details)",
     "menuCat": "Details",
     "order": "49",
     "role": "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails",
     "shortName": "Business Acquisitions - Summary of the Fair Values of Assets Acquired and Liabilities Assumed (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i5926f9ca4a7140d8b6c8453016157bdf_I20220101",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R5": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "0000005 - Statement - CONSOLIDATED STATEMENTS OF NET INCOME AND COMPREHENSIVE INCOME",
     "menuCat": "Statements",
     "order": "5",
     "role": "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME",
     "shortName": "CONSOLIDATED STATEMENTS OF NET INCOME AND COMPREHENSIVE INCOME",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:CostDirectLabor",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R50": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000050 - Disclosure - Business Acquisitions - Results of Operations From any Business Acquired (Details)",
     "menuCat": "Details",
     "order": "50",
     "role": "http://www.nv5.com/role/BusinessAcquisitionsResultsofOperationsFromanyBusinessAcquiredDetails",
     "shortName": "Business Acquisitions - Results of Operations From any Business Acquired (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R51": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessAcquisitionsProFormaRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000051 - Disclosure - Business Acquisitions - Pro Forma Consolidated Results of Operations (Details)",
     "menuCat": "Details",
     "order": "51",
     "role": "http://www.nv5.com/role/BusinessAcquisitionsProFormaConsolidatedResultsofOperationsDetails",
     "shortName": "Business Acquisitions - Pro Forma Consolidated Results of Operations (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessAcquisitionsProFormaRevenue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R52": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsReceivableGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000052 - Disclosure - Billed and Unbilled Receivables - Summary of Billed and Unbilled Receivables (Details)",
     "menuCat": "Details",
     "order": "52",
     "role": "http://www.nv5.com/role/BilledandUnbilledReceivablesSummaryofBilledandUnbilledReceivablesDetails",
     "shortName": "Billed and Unbilled Receivables - Summary of Billed and Unbilled Receivables (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AccountsReceivableGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R53": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i5926f9ca4a7140d8b6c8453016157bdf_I20220101",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000053 - Disclosure - Billed and Unbilled Receivables - Activity in the Allowance for Doubtful Accounts (Details)",
     "menuCat": "Details",
     "order": "53",
     "role": "http://www.nv5.com/role/BilledandUnbilledReceivablesActivityintheAllowanceforDoubtfulAccountsDetails",
     "shortName": "Billed and Unbilled Receivables - Activity in the Allowance for Doubtful Accounts (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R54": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000054 - Disclosure - Property and Equipment, net (Details)",
     "menuCat": "Details",
     "order": "54",
     "role": "http://www.nv5.com/role/PropertyandEquipmentnetDetails",
     "shortName": "Property and Equipment, net (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R55": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:Depreciation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000055 - Disclosure - Property and Equipment, net - Narrative (Details)",
     "menuCat": "Details",
     "order": "55",
     "role": "http://www.nv5.com/role/PropertyandEquipmentnetNarrativeDetails",
     "shortName": "Property and Equipment, net - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:Depreciation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R56": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i5926f9ca4a7140d8b6c8453016157bdf_I20220101",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000056 - Disclosure - Goodwill and Intangible Assets - Schedule of Goodwill (Details)",
     "menuCat": "Details",
     "order": "56",
     "role": "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofGoodwillDetails",
     "shortName": "Goodwill and Intangible Assets - Schedule of Goodwill (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i57d06159389f4136b5e9d9036876a791_I20210102",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R57": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000057 - Disclosure - Goodwill and Intangible Assets - Narrative (Details)",
     "menuCat": "Details",
     "order": "57",
     "role": "http://www.nv5.com/role/GoodwillandIntangibleAssetsNarrativeDetails",
     "shortName": "Goodwill and Intangible Assets - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R58": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000058 - Disclosure - Goodwill and Intangible Assets - Schedule of Finite-lived Intangible Assets (Details)",
     "menuCat": "Details",
     "order": "58",
     "role": "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
     "shortName": "Goodwill and Intangible Assets - Schedule of Finite-lived Intangible Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R59": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i2dd11862c1804bc9a06b953cad69f0dd_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000059 - Disclosure - Goodwill and Intangible Assets - Weighted Average Useful Lives of Intangible Assets (Details)",
     "menuCat": "Details",
     "order": "59",
     "role": "http://www.nv5.com/role/GoodwillandIntangibleAssetsWeightedAverageUsefulLivesofIntangibleAssetsDetails",
     "shortName": "Goodwill and Intangible Assets - Weighted Average Useful Lives of Intangible Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i2dd11862c1804bc9a06b953cad69f0dd_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R6": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i2c25b3235a2140148a60bebe703547e6_I20191228",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SharesOutstanding",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "0000006 - Statement - CONSOLIDATED STATEMENTS OF CHANGES IN STOCKHOLDERS\u2019 EQUITY",
     "menuCat": "Statements",
     "order": "6",
     "role": "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY",
     "shortName": "CONSOLIDATED STATEMENTS OF CHANGES IN STOCKHOLDERS\u2019 EQUITY",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i2c25b3235a2140148a60bebe703547e6_I20191228",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SharesOutstanding",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R60": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000060 - Disclosure - Goodwill and Intangible Assets - Schedule of Future Estimated Aggregate Amortization Related to Finite-lived Intangible Assets (Details)",
     "menuCat": "Details",
     "order": "60",
     "role": "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails",
     "shortName": "Goodwill and Intangible Assets - Schedule of Future Estimated Aggregate Amortization Related to Finite-lived Intangible Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R61": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeaseLiabilityCurrent",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000061 - Disclosure - Accrued Liabilities - Summary of Accrued Liabilities (Details)",
     "menuCat": "Details",
     "order": "61",
     "role": "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails",
     "shortName": "Accrued Liabilities - Summary of Accrued Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:AccruedVacationCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R62": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDebtInstrumentsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FinanceLeaseLiability",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000062 - Disclosure - Notes Payable and Other Obligations - Summary of Notes Payable and Other Obligations (Details)",
     "menuCat": "Details",
     "order": "62",
     "role": "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails",
     "shortName": "Notes Payable and Other Obligations - Summary of Notes Payable and Other Obligations (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDebtInstrumentsTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:DeferredFinanceCostsNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R63": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000063 - Disclosure - Notes Payable and Other Obligations - Future Contractual Maturities of Long-term Debt (Details)",
     "menuCat": "Details",
     "order": "63",
     "role": "http://www.nv5.com/role/NotesPayableandOtherObligationsFutureContractualMaturitiesofLongtermDebtDetails",
     "shortName": "Notes Payable and Other Obligations - Future Contractual Maturities of Long-term Debt (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R64": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "nvee:DebtCovenantLiquidityAvailability",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000064 - Disclosure - Notes Payable and Other Obligations - Narrative (Details)",
     "menuCat": "Details",
     "order": "64",
     "role": "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails",
     "shortName": "Notes Payable and Other Obligations - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "nvee:DebtCovenantLiquidityAvailability",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R65": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionContingentConsiderationTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i5926f9ca4a7140d8b6c8453016157bdf_I20220101",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationContingentConsiderationLiability",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000065 - Disclosure - Contingent Consideration - Summary of Contingent Consideration (Details)",
     "menuCat": "Details",
     "order": "65",
     "role": "http://www.nv5.com/role/ContingentConsiderationSummaryofContingentConsiderationDetails",
     "shortName": "Contingent Consideration - Summary of Contingent Consideration (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionContingentConsiderationTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "nvee:BusinessCombinationContingentConsiderationAdditionsForAcquisitions",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R66": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "nvee:NumberOfEquipmentOperatingLeases",
      "reportCount": 1,
      "unique": true,
      "unitRef": "lease",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000066 - Disclosure - Leases - Narrative (Details)",
     "menuCat": "Details",
     "order": "66",
     "role": "http://www.nv5.com/role/LeasesNarrativeDetails",
     "shortName": "Leases - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "nvee:NumberOfEquipmentOperatingLeases",
      "reportCount": 1,
      "unique": true,
      "unitRef": "lease",
      "xsiNil": "false"
     }
    },
    "R67": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "nvee:BalanceSheetClassificationOfOperatingAndFinanceLeasesTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeaseRightOfUseAsset",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000067 - Disclosure - Leases - Schedule of Supplemental Balance Sheet Information (Details)",
     "menuCat": "Details",
     "order": "67",
     "role": "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails",
     "shortName": "Leases - Schedule of Supplemental Balance Sheet Information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "nvee:BalanceSheetClassificationOfOperatingAndFinanceLeasesTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:FinanceLeaseRightOfUseAsset",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R68": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "nvee:LeaseTermAndDiscountRateTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000068 - Disclosure - Leases - Schedule of Lease Term and Discount Rate (Details)",
     "menuCat": "Details",
     "order": "68",
     "role": "http://www.nv5.com/role/LeasesScheduleofLeaseTermandDiscountRateDetails",
     "shortName": "Leases - Schedule of Lease Term and Discount Rate (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "nvee:LeaseTermAndDiscountRateTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R69": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "nvee:LeasesSupplementalCashFlowInformationTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeasePayments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000069 - Disclosure - Leases - Schedule of Supplemental Cash Flow Information (Details)",
     "menuCat": "Details",
     "order": "69",
     "role": "http://www.nv5.com/role/LeasesScheduleofSupplementalCashFlowInformationDetails",
     "shortName": "Leases - Schedule of Supplemental Cash Flow Information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "nvee:LeasesSupplementalCashFlowInformationTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeasePayments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R7": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "0000007 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "menuCat": "Statements",
     "order": "7",
     "role": "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
     "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:OtherDepreciationAndAmortization",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R70": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LeaseCostTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeaseCost",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000070 - Disclosure - Leases - Schedule of Lease Cost (Details)",
     "menuCat": "Details",
     "order": "70",
     "role": "http://www.nv5.com/role/LeasesScheduleofLeaseCostDetails",
     "shortName": "Leases - Schedule of Lease Cost (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LeaseCostTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeaseCost",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R71": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000071 - Disclosure - Leases - Schedule of Maturities of Lease Liabilities (Details)",
     "menuCat": "Details",
     "order": "71",
     "role": "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails",
     "shortName": "Leases - Schedule of Maturities of Lease Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R72": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ic015792bae0f49ba9d16a3dd9b185b35_I20211130",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "nvee:NumberOfConsultingEngineeringFirms",
      "reportCount": 1,
      "unique": true,
      "unitRef": "firm",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000072 - Disclosure - Commitment and Contingencies (Details)",
     "menuCat": "Details",
     "order": "72",
     "role": "http://www.nv5.com/role/CommitmentandContingenciesDetails",
     "shortName": "Commitment and Contingencies (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ic015792bae0f49ba9d16a3dd9b185b35_I20211130",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "nvee:NumberOfConsultingEngineeringFirms",
      "reportCount": 1,
      "unique": true,
      "unitRef": "firm",
      "xsiNil": "false"
     }
    },
    "R73": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i6c61db963fd044c284e33bfde7aac79a_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000073 - Disclosure - Stock-Based Compensation - Narrative (Details)",
     "menuCat": "Details",
     "order": "73",
     "role": "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails",
     "shortName": "Stock-Based Compensation - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i6c61db963fd044c284e33bfde7aac79a_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R74": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i47a719f57e8b4c45951e5c45deb54983_I20220101",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "reportCount": 1,
      "unitRef": "shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000074 - Disclosure - Stock-Based Compensation - Restricted Stock Awards (Details)",
     "menuCat": "Details",
     "order": "74",
     "role": "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails",
     "shortName": "Stock-Based Compensation - Restricted Stock Awards (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ifd584ff76fe942c9b2ae46fe81484e5c_I20191228",
      "decimals": "INF",
      "lang": "en-US",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "shares",
      "xsiNil": "false"
     }
    },
    "R75": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000075 - Disclosure - Employee Benefit Plan (Details)",
     "menuCat": "Details",
     "order": "75",
     "role": "http://www.nv5.com/role/EmployeeBenefitPlanDetails",
     "shortName": "Employee Benefit Plan (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R76": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000076 - Disclosure - Income Taxes - Income Tax Expense (Benefit) (Details)",
     "menuCat": "Details",
     "order": "76",
     "role": "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails",
     "shortName": "Income Taxes - Income Tax Expense (Benefit) (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R77": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "nvee:DeferredTaxAssetsLeaseLiabilities",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000077 - Disclosure - Income Taxes - Net Deferred Income Tax Asset (Liability) (Details)",
     "menuCat": "Details",
     "order": "77",
     "role": "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails",
     "shortName": "Income Taxes - Net Deferred Income Tax Asset (Liability) (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "nvee:DeferredTaxAssetsLeaseLiabilities",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R78": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i4b3592cb5f85434aa4f7f4f5c00c316c_I20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DeferredTaxLiabilities",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000078 - Disclosure - Income Taxes - Narrative (Details)",
     "menuCat": "Details",
     "order": "78",
     "role": "http://www.nv5.com/role/IncomeTaxesNarrativeDetails",
     "shortName": "Income Taxes - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "3",
      "lang": "en-US",
      "name": "us-gaap:EffectiveIncomeTaxRateContinuingOperations",
      "reportCount": 1,
      "unique": true,
      "unitRef": "number",
      "xsiNil": "false"
     }
    },
    "R79": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000079 - Disclosure - Income Taxes - Income Tax Expense (Benefit) Reconciliation (Details)",
     "menuCat": "Details",
     "order": "79",
     "role": "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails",
     "shortName": "Income Taxes - Income Tax Expense (Benefit) Reconciliation (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R8": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000008 - Disclosure - Organization and Nature of Business Operations",
     "menuCat": "Notes",
     "order": "8",
     "role": "http://www.nv5.com/role/OrganizationandNatureofBusinessOperations",
     "shortName": "Organization and Nature of Business Operations",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R80": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i5926f9ca4a7140d8b6c8453016157bdf_I20220101",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000080 - Disclosure - Income Taxes - Unrecognized Tax Liability (Details)",
     "menuCat": "Details",
     "order": "80",
     "role": "http://www.nv5.com/role/IncomeTaxesUnrecognizedTaxLiabilityDetails",
     "shortName": "Income Taxes - Unrecognized Tax Liability (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R81": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:NumberOfReportingUnits",
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NumberOfOperatingSegments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "segment",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000081 - Disclosure - Reportable Segments - Narrative (Details)",
     "menuCat": "Details",
     "order": "81",
     "role": "http://www.nv5.com/role/ReportableSegmentsNarrativeDetails",
     "shortName": "Reportable Segments - Narrative (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:NumberOfReportingUnits",
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "INF",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:NumberOfOperatingSegments",
      "reportCount": 1,
      "unique": true,
      "unitRef": "segment",
      "xsiNil": "false"
     }
    },
    "R82": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000082 - Disclosure - Reportable Segments - Summarized Financial Information (Details)",
     "menuCat": "Details",
     "order": "82",
     "role": "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails",
     "shortName": "Reportable Segments - Summarized Financial Information (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i54365544d98d4c0cb8fd8eb7e0426f01_D20220102-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R83": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000083 - Disclosure - Reportable Segments - Revenue by Geographic Location (Details)",
     "menuCat": "Details",
     "order": "83",
     "role": "http://www.nv5.com/role/ReportableSegmentsRevenuebyGeographicLocationDetails",
     "shortName": "Reportable Segments - Revenue by Geographic Location (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i42d782feb9a24131964d9e7782aae983_D20220102-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R84": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000084 - Disclosure - Reportable Segments - Revenue by Customer Type (Details)",
     "menuCat": "Details",
     "order": "84",
     "role": "http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails",
     "shortName": "Reportable Segments - Revenue by Customer Type (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i920f6420b6bb4739aadb095a13665e1a_D20220102-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R85": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000085 - Disclosure - Reportable Segments - Revenue by Contract Type (Details)",
     "menuCat": "Details",
     "order": "85",
     "role": "http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails",
     "shortName": "Reportable Segments - Revenue by Contract Type (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "if46933fac0c943b8bd8ccf8b56100d7f_D20220102-20221231",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R86": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i9e55b72dca024e4eb093f094523efc3b_D20210103-20220101",
      "decimals": "-3",
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationConsiderationTransferred1",
      "reportCount": 1,
      "unitRef": "usd",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000086 - Disclosure - Subsequent Events (Details)",
     "menuCat": "Details",
     "order": "86",
     "role": "http://www.nv5.com/role/SubsequentEventsDetails",
     "shortName": "Subsequent Events (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "i2b2a218eac9c43a4abb18e1e4504fd02_D20230222-20230222",
      "decimals": "-3",
      "lang": "en-US",
      "name": "us-gaap:BusinessCombinationConsiderationTransferred1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "usd",
      "xsiNil": "false"
     }
    },
    "R9": {
     "firstAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "0000009 - Disclosure - Summary of Significant Accounting Policies",
     "menuCat": "Notes",
     "order": "9",
     "role": "http://www.nv5.com/role/SummaryofSignificantAccountingPolicies",
     "shortName": "Summary of Significant Accounting Policies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "baseRef": "nvee-20221231.htm",
      "contextRef": "ia7ea70f586ce466b9fe5cd81e9e85b88_D20220102-20221231",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    }
   },
   "segmentCount": 61,
   "tag": {
    "country_US": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "UNITED STATES",
        "terseLabel": "United States"
       }
      }
     },
     "localname": "US",
     "nsuri": "http://xbrl.sec.gov/country/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyGeographicLocationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dei_AmendmentFlag": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.",
        "label": "Amendment Flag",
        "terseLabel": "Amendment Flag"
       }
      }
     },
     "localname": "AmendmentFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_AuditorFirmId": {
     "auth_ref": [
      "r704",
      "r705",
      "r706"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "PCAOB issued Audit Firm Identifier",
        "label": "Auditor Firm ID",
        "terseLabel": "Auditor Firm ID"
       }
      }
     },
     "localname": "AuditorFirmId",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/AuditInformation"
     ],
     "xbrltype": "nonemptySequenceNumberItemType"
    },
    "dei_AuditorLocation": {
     "auth_ref": [
      "r704",
      "r705",
      "r706"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Location",
        "terseLabel": "Auditor Location"
       }
      }
     },
     "localname": "AuditorLocation",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/AuditInformation"
     ],
     "xbrltype": "internationalNameItemType"
    },
    "dei_AuditorName": {
     "auth_ref": [
      "r704",
      "r705",
      "r706"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Auditor Name",
        "terseLabel": "Auditor Name"
       }
      }
     },
     "localname": "AuditorName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/AuditInformation"
     ],
     "xbrltype": "internationalNameItemType"
    },
    "dei_CityAreaCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Area code of city",
        "label": "City Area Code",
        "terseLabel": "City Area Code"
       }
      }
     },
     "localname": "CityAreaCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_CoverAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cover page.",
        "label": "Cover [Abstract]",
        "terseLabel": "Cover [Abstract]"
       }
      }
     },
     "localname": "CoverAbstract",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "xbrltype": "stringItemType"
    },
    "dei_CurrentFiscalYearEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "End date of current fiscal year in the format --MM-DD.",
        "label": "Current Fiscal Year End Date",
        "terseLabel": "Current Fiscal Year End Date"
       }
      }
     },
     "localname": "CurrentFiscalYearEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "gMonthDayItemType"
    },
    "dei_DocumentAnnualReport": {
     "auth_ref": [
      "r704",
      "r705",
      "r706"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as an annual report.",
        "label": "Document Annual Report",
        "terseLabel": "Document Annual Report"
       }
      }
     },
     "localname": "DocumentAnnualReport",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentFiscalPeriodFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.",
        "label": "Document Fiscal Period Focus",
        "terseLabel": "Document Fiscal Period Focus"
       }
      }
     },
     "localname": "DocumentFiscalPeriodFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "fiscalPeriodItemType"
    },
    "dei_DocumentFiscalYearFocus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.",
        "label": "Document Fiscal Year Focus",
        "terseLabel": "Document Fiscal Year Focus"
       }
      }
     },
     "localname": "DocumentFiscalYearFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "gYearItemType"
    },
    "dei_DocumentPeriodEndDate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD.",
        "label": "Document Period End Date",
        "terseLabel": "Document Period End Date"
       }
      }
     },
     "localname": "DocumentPeriodEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "dateItemType"
    },
    "dei_DocumentTransitionReport": {
     "auth_ref": [
      "r707"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true only for a form used as a transition report.",
        "label": "Document Transition Report",
        "terseLabel": "Document Transition Report"
       }
      }
     },
     "localname": "DocumentTransitionReport",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_DocumentType": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.",
        "label": "Document Type",
        "terseLabel": "Document Type"
       }
      }
     },
     "localname": "DocumentType",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "submissionTypeItemType"
    },
    "dei_DocumentsIncorporatedByReferenceTextBlock": {
     "auth_ref": [
      "r702"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Documents incorporated by reference.",
        "label": "Documents Incorporated by Reference [Text Block]",
        "terseLabel": "Documents Incorporated by Reference"
       }
      }
     },
     "localname": "DocumentsIncorporatedByReferenceTextBlock",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "textBlockItemType"
    },
    "dei_EntityAddressAddressLine1": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name",
        "label": "Entity Address, Address Line One",
        "terseLabel": "Entity Address, Address Line One"
       }
      }
     },
     "localname": "EntityAddressAddressLine1",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressAddressLine2": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Address Line 2 such as Street or Suite number",
        "label": "Entity Address, Address Line Two",
        "terseLabel": "Entity Address, Address Line Two"
       }
      }
     },
     "localname": "EntityAddressAddressLine2",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressCityOrTown": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the City or Town",
        "label": "Entity Address, City or Town",
        "terseLabel": "Entity Address, City or Town"
       }
      }
     },
     "localname": "EntityAddressCityOrTown",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressPostalZipCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Code for the postal or zip code",
        "label": "Entity Address, Postal Zip Code",
        "terseLabel": "Entity Address, Postal Zip Code"
       }
      }
     },
     "localname": "EntityAddressPostalZipCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityAddressStateOrProvince": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the state or province.",
        "label": "Entity Address, State or Province",
        "terseLabel": "Entity Address, State or Province"
       }
      }
     },
     "localname": "EntityAddressStateOrProvince",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "stateOrProvinceItemType"
    },
    "dei_EntityCentralIndexKey": {
     "auth_ref": [
      "r701"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.",
        "label": "Entity Central Index Key",
        "terseLabel": "Entity Central Index Key"
       }
      }
     },
     "localname": "EntityCentralIndexKey",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "centralIndexKeyItemType"
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.",
        "label": "Entity Common Stock, Shares Outstanding",
        "terseLabel": "Entity Common Stock, Shares Outstanding"
       }
      }
     },
     "localname": "EntityCommonStockSharesOutstanding",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "sharesItemType"
    },
    "dei_EntityCurrentReportingStatus": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.",
        "label": "Entity Current Reporting Status",
        "terseLabel": "Entity Current Reporting Status"
       }
      }
     },
     "localname": "EntityCurrentReportingStatus",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityEmergingGrowthCompany": {
     "auth_ref": [
      "r701"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate if registrant meets the emerging growth company criteria.",
        "label": "Entity Emerging Growth Company",
        "terseLabel": "Entity Emerging Growth Company"
       }
      }
     },
     "localname": "EntityEmergingGrowthCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityFileNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.",
        "label": "Entity File Number",
        "terseLabel": "Entity File Number"
       }
      }
     },
     "localname": "EntityFileNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "fileNumberItemType"
    },
    "dei_EntityFilerCategory": {
     "auth_ref": [
      "r701"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.",
        "label": "Entity Filer Category",
        "terseLabel": "Entity Filer Category"
       }
      }
     },
     "localname": "EntityFilerCategory",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "filerCategoryItemType"
    },
    "dei_EntityIncorporationStateCountryCode": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Two-character EDGAR code representing the state or country of incorporation.",
        "label": "Entity Incorporation, State or Country Code",
        "terseLabel": "Entity Incorporation, State or Country Code"
       }
      }
     },
     "localname": "EntityIncorporationStateCountryCode",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "edgarStateCountryItemType"
    },
    "dei_EntityInteractiveDataCurrent": {
     "auth_ref": [
      "r708"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).",
        "label": "Entity Interactive Data Current",
        "terseLabel": "Entity Interactive Data Current"
       }
      }
     },
     "localname": "EntityInteractiveDataCurrent",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityPublicFloat": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.",
        "label": "Entity Public Float",
        "terseLabel": "Entity Public Float"
       }
      }
     },
     "localname": "EntityPublicFloat",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dei_EntityRegistrantName": {
     "auth_ref": [
      "r701"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.",
        "label": "Entity Registrant Name",
        "terseLabel": "Entity Registrant Name"
       }
      }
     },
     "localname": "EntityRegistrantName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityShellCompany": {
     "auth_ref": [
      "r701"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.",
        "label": "Entity Shell Company",
        "terseLabel": "Entity Shell Company"
       }
      }
     },
     "localname": "EntityShellCompany",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntitySmallBusiness": {
     "auth_ref": [
      "r701"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC).",
        "label": "Entity Small Business",
        "terseLabel": "Entity Small Business"
       }
      }
     },
     "localname": "EntitySmallBusiness",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_EntityTaxIdentificationNumber": {
     "auth_ref": [
      "r701"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.",
        "label": "Entity Tax Identification Number",
        "terseLabel": "Entity Tax Identification Number"
       }
      }
     },
     "localname": "EntityTaxIdentificationNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "employerIdItemType"
    },
    "dei_EntityVoluntaryFilers": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.",
        "label": "Entity Voluntary Filers",
        "terseLabel": "Entity Voluntary Filers"
       }
      }
     },
     "localname": "EntityVoluntaryFilers",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "auth_ref": [
      "r709"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.",
        "label": "Entity Well-known Seasoned Issuer",
        "terseLabel": "Entity Well-known Seasoned Issuer"
       }
      }
     },
     "localname": "EntityWellKnownSeasonedIssuer",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_IcfrAuditorAttestationFlag": {
     "auth_ref": [
      "r704",
      "r705",
      "r706"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "ICFR Auditor Attestation Flag",
        "terseLabel": "ICFR Auditor Attestation Flag"
       }
      }
     },
     "localname": "IcfrAuditorAttestationFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "booleanItemType"
    },
    "dei_LocalPhoneNumber": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Local phone number for entity.",
        "label": "Local Phone Number",
        "terseLabel": "Local Phone Number"
       }
      }
     },
     "localname": "LocalPhoneNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_Security12bTitle": {
     "auth_ref": [
      "r700"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Title of a 12(b) registered security.",
        "label": "Title of 12(b) Security",
        "terseLabel": "Title of 12(b) Security"
       }
      }
     },
     "localname": "Security12bTitle",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "securityTitleItemType"
    },
    "dei_SecurityExchangeName": {
     "auth_ref": [
      "r703"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Name of the Exchange on which a security is registered.",
        "label": "Security Exchange Name",
        "terseLabel": "Security Exchange Name"
       }
      }
     },
     "localname": "SecurityExchangeName",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "edgarExchangeCodeItemType"
    },
    "dei_TradingSymbol": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Trading symbol of an instrument as listed on an exchange.",
        "label": "Trading Symbol",
        "terseLabel": "Trading Symbol"
       }
      }
     },
     "localname": "TradingSymbol",
     "nsuri": "http://xbrl.sec.gov/dei/2022",
     "presentation": [
      "http://www.nv5.com/role/Cover"
     ],
     "xbrltype": "tradingSymbolItemType"
    },
    "nvee_A2020AcquisitionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "2020 Acquisition",
        "label": "2020 Acquisition [Member]",
        "terseLabel": "2020 Acquisition"
       }
      }
     },
     "localname": "A2020AcquisitionMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_ARCreditAgreementMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "AR Credit Agreement [Member]",
        "label": "AR Credit Agreement [Member]",
        "terseLabel": "AR Credit Agreement"
       }
      }
     },
     "localname": "ARCreditAgreementMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_AccruedOperatingExpenses": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accrued Operating Expenses",
        "label": "Accrued Operating Expenses",
        "terseLabel": "Accrued operating expenses"
       }
      }
     },
     "localname": "AccruedOperatingExpenses",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_AccruedPayrollAndPayrollTaxesCurrent": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for payroll and statutory payroll taxes incurred through that date and withheld from employees pertaining to services received from them, including entity's matching share of the employees FICA taxes and contributions to the state and federal unemployment insurance programs. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Payroll and related taxes",
        "terseLabel": "Payroll and related taxes"
       }
      }
     },
     "localname": "AccruedPayrollAndPayrollTaxesCurrent",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_AuditInformationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Audit Information",
        "label": "Audit Information [Abstract]"
       }
      }
     },
     "localname": "AuditInformationAbstract",
     "nsuri": "http://www.nv5.com/20221231",
     "xbrltype": "stringItemType"
    },
    "nvee_AximGeospatialLLCMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Axim Geospatial, LLC",
        "label": "Axim Geospatial, LLC [Member]",
        "terseLabel": "Axim Geospatial, LLC"
       }
      }
     },
     "localname": "AximGeospatialLLCMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_BTSMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the operating and reportable segment Buildings, Energy &amp; Science (BES), which includes energy and environmental practices as well as buildings program management.",
        "label": "BTS [Member]",
        "terseLabel": "BTS"
       }
      }
     },
     "localname": "BTSMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofGoodwillDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyGeographicLocationDetails",
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_BalanceSheetClassificationOfOperatingAndFinanceLeasesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the balance sheet classification of leased assets and liabilities under operating and finance leases.",
        "label": "Balance Sheet Classification of Operating and Finance Leases [Table Text Block]",
        "terseLabel": "Schedule of supplemental balance sheet information"
       }
      }
     },
     "localname": "BalanceSheetClassificationOfOperatingAndFinanceLeasesTableTextBlock",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nvee_BasisOfPresentationAndPrinciplesOfConsolidationPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for the basis of presentation and principles of consolidation for the company.",
        "label": "Basis of Presentation and Principles of Consolidation [Policy Text Block]",
        "terseLabel": "Basis of Presentation and Principles of Consolidation"
       }
      }
     },
     "localname": "BasisOfPresentationAndPrinciplesOfConsolidationPolicyTextBlock",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nvee_BusinessCombinationConsiderationTransferredLiabilitiesIncurredNumberOfEqualInstallments": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of equal installment payments required for liabilities incurred by the acquirer as part of consideration transferred in a business combination.",
        "label": "Business Combination, Consideration Transferred Liabilities Incurred, Number Of Equal Installments",
        "terseLabel": "Number of installments"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferredLiabilitiesIncurredNumberOfEqualInstallments",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "nvee_BusinessCombinationContingentConsiderationAdditionsForAcquisitions": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the additions for acquisitions during the period effecting a change in the contingent consideration liability.",
        "label": "Business Combination, Contingent Consideration, Additions for Acquisitions",
        "terseLabel": "Additions for acquisitions"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationAdditionsForAcquisitions",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/ContingentConsiderationSummaryofContingentConsiderationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_BusinessCombinationContingentConsiderationIncreaseOfLiabilityRelatedToReMeasurementOfFairValue": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of increase (reduction) of the contingent consideration liability during the period related to re-measurement of fair value.",
        "label": "Business Combination, Contingent Consideration, Increase of Liability Related To Re-measurement of Fair Value",
        "terseLabel": "Increase of liability related to re-measurement of fair value"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationIncreaseOfLiabilityRelatedToReMeasurementOfFairValue",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/ContingentConsiderationSummaryofContingentConsiderationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_BusinessCombinationContingentConsiderationLiabilityReductionOfLiabilityForPaymentsMade": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of reduction of liability for payments made, effecting a change in the contingent consideration liability during the period.",
        "label": "Business Combination, Contingent Consideration Liability Reduction Of Liability For Payments Made",
        "negatedLabel": "Reduction of liability for payments made"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationLiabilityReductionOfLiabilityForPaymentsMade",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/ContingentConsiderationSummaryofContingentConsiderationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_BusinessCombinationProFormaInformationIncomeBeforeIncomeTaxesOfAcquireeSinceAcquisitionDateActual": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This element represents the amount of income before income taxes of the acquiree since the acquisition date included in the consolidated income statement for the reporting period.",
        "label": "nvee_BusinessCombinationProFormaInformationIncomeBeforeIncomeTaxesOfAcquireeSinceAcquisitionDateActual",
        "terseLabel": "Income before income taxes"
       }
      }
     },
     "localname": "BusinessCombinationProFormaInformationIncomeBeforeIncomeTaxesOfAcquireeSinceAcquisitionDateActual",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsResultsofOperationsFromanyBusinessAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPrepaidExpenses": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, acquired at the acquisition date.",
        "label": "Prepaid expenses",
        "terseLabel": "Prepaid expenses"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPrepaidExpenses",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Right-Of-Use Assets",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Right-Of-Use Assets",
        "terseLabel": "Right-of-use assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedRightOfUseAssets",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_CAMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the state of California.",
        "label": "CALIFORNIA [Member]",
        "terseLabel": "CALIFORNIA"
       }
      }
     },
     "localname": "CAMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_CommitmentsandContingenciesDisclosureRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Commitments and Contingencies Disclosure [Roll Forward]",
        "label": "Commitments and Contingencies Disclosure [Roll Forward]",
        "terseLabel": "Commitments and Contingencies Disclosure [Roll Forward]"
       }
      }
     },
     "localname": "CommitmentsandContingenciesDisclosureRollForward",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/ContingentConsiderationSummaryofContingentConsiderationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "nvee_ConsiderationTransferredCashNotesAndCommonStock": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This item represents cash and common stock transferred plus the liabilities assumed on the sale date.",
        "label": "Consideration paid (Cash, Notes and/or stock)",
        "terseLabel": "Consideration paid (Cash, notes and/or stock)"
       }
      }
     },
     "localname": "ConsiderationTransferredCashNotesAndCommonStock",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_ContingentConsiderationEarnOutNonCash": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contingent Consideration Earn-Out, Non-Cash",
        "label": "Contingent Consideration Earn-Out, Non-Cash",
        "terseLabel": "Contingent consideration (earn-out)"
       }
      }
     },
     "localname": "ContingentConsiderationEarnOutNonCash",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_CostOfSubConsultantServices": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 2.0,
       "parentTag": "us-gaap_DirectOperatingCosts",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cost of sub-consultant services.",
        "label": "Sub-consultant services",
        "terseLabel": "Sub-consultant services"
       }
      }
     },
     "localname": "CostOfSubConsultantServices",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_CostreimbursableContractsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contract with customer in which amount of contract may be cost-reimbursable.",
        "label": "Cost-Reimbursable Contracts [Member]",
        "terseLabel": "Cost-reimbursable contracts"
       }
      }
     },
     "localname": "CostreimbursableContractsMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_CurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Current:",
        "terseLabel": "Current:"
       }
      }
     },
     "localname": "CurrentAbstract",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "nvee_DebtCovenantLiquidityAvailability": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Debt Covenant, Liquidity Availability",
        "label": "Debt Covenant, Liquidity Availability",
        "terseLabel": "Debt covenant, liquidity availability"
       }
      }
     },
     "localname": "DebtCovenantLiquidityAvailability",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_DeferredAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred:",
        "terseLabel": "Deferred:"
       }
      }
     },
     "localname": "DeferredAbstract",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "nvee_DeferredTaxAssetAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred tax asset:",
        "terseLabel": "Deferred tax asset:"
       }
      }
     },
     "localname": "DeferredTaxAssetAbstract",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "nvee_DeferredTaxAssetsAccruedPayrollTax": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred Tax Assets, Accrued Payroll Tax",
        "label": "Deferred Tax Assets, Accrued Payroll Tax",
        "terseLabel": "Accrued payroll tax"
       }
      }
     },
     "localname": "DeferredTaxAssetsAccruedPayrollTax",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_DeferredTaxAssetsLeaseLiabilities": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred Tax Assets, Lease Liabilities",
        "label": "Deferred Tax Assets, Lease Liabilities",
        "terseLabel": "Lease liabilities"
       }
      }
     },
     "localname": "DeferredTaxAssetsLeaseLiabilities",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_DeferredTaxLiabilitiesCashToAccrualAdjustment": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred Tax Liabilities, Cash To Accrual Adjustment",
        "label": "Deferred Tax Liabilities, Cash To Accrual Adjustment",
        "negatedLabel": "Cash to accrual adjustment"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesCashToAccrualAdjustment",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_DeferredTaxLiabilitiesRightOfUseAssets": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Deferred Tax Liabilities, Right-Of-Use Assets",
        "label": "Deferred Tax Liabilities, Right-Of-Use Assets",
        "negatedTerseLabel": "Right-of-use assets"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesRightOfUseAssets",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_DeferredTaxLiabilityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Deferred tax liability:",
        "terseLabel": "Deferred tax liability:"
       }
      }
     },
     "localname": "DeferredTaxLiabilityAbstract",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "nvee_DefinedContributionPlanEmployerMatchingContributionPercentForCashToRetirementPlan": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Defined Contribution Plan, Employer Matching Contribution, Percent For Cash To Retirement Plan",
        "label": "Defined Contribution Plan, Employer Matching Contribution, Percent For Cash To Retirement Plan",
        "terseLabel": "Percent for cash to retirement plan"
       }
      }
     },
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercentForCashToRetirementPlan",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "nvee_DefinedContributionPlanEmployerMatchingContributionPercentForRestrictedStockAwards": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Defined Contribution Plan, Employer Matching Contribution, Percent For Restricted Stock Awards",
        "label": "Defined Contribution Plan, Employer Matching Contribution, Percent For Restricted Stock Awards",
        "terseLabel": "Percent for restricted stock awards"
       }
      }
     },
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercentForRestrictedStockAwards",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "nvee_DenominatorAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Denominator",
        "label": "Denominator [Abstract]",
        "terseLabel": "Denominator [Abstract]"
       }
      }
     },
     "localname": "DenominatorAbstract",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "nvee_DevelopedTechnologyMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Developed Technology [Member]",
        "label": "Developed Technology [Member]",
        "terseLabel": "Developed technology"
       }
      }
     },
     "localname": "DevelopedTechnologyMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_EffectiveIncomeTaxRateReconciliationChangesInUnrecognizedTaxPosition": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of differences between reported income tax expense (benefit) and expected income tax expense (benefit) for changes in unrecognized tax positions.",
        "label": "Changes in unrecognized tax position",
        "terseLabel": "Changes in unrecognized tax position"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationChangesInUnrecognizedTaxPosition",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_EffectiveIncomeTaxRateReconciliationShareBasedCompensationAmount": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to share-based compensation.",
        "label": "Stock based compensation",
        "terseLabel": "Stock-based compensation"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationShareBasedCompensationAmount",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_EquityPlan2011Member": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the 2011 equity incentive plan.",
        "label": "Equity Plan 2011 [Member]",
        "terseLabel": "Equity plan 2011"
       }
      }
     },
     "localname": "EquityPlan2011Member",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_ForeignCountriesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "All countries other than the domestic country considered for financial reporting purposes.",
        "label": "Foreign Countries [Member]",
        "terseLabel": "Foreign"
       }
      }
     },
     "localname": "ForeignCountriesMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyGeographicLocationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_GEOMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "G E O [Member]",
        "label": "G E O [Member]",
        "terseLabel": "GEO"
       }
      }
     },
     "localname": "GEOMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofGoodwillDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyGeographicLocationDetails",
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_INFMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the operating and reportable segment Infrastructure (INF), which includes engineering, civil program management, and construction quality assurance practices.",
        "label": "INF [Member]",
        "terseLabel": "INF"
       }
      }
     },
     "localname": "INFMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofGoodwillDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyGeographicLocationDetails",
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_IncreaseDecreaseInAccruedLiabilitiesAndOtherLongTermLiabilities": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 12.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Increase (Decrease) in Accrued Liabilities And Other Long-Term Liabilities",
        "label": "Increase (Decrease) in Accrued Liabilities And Other Long-Term Liabilities",
        "verboseLabel": "Accrued liabilities and other long-term liabilities"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccruedLiabilitiesAndOtherLongTermLiabilities",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_IncreaseDecreaseInContingentConsiderationLiability": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 17.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Increase (Decrease) In Contingent Consideration Liability",
        "label": "Increase (Decrease) In Contingent Consideration Liability",
        "terseLabel": "Contingent consideration"
       }
      }
     },
     "localname": "IncreaseDecreaseInContingentConsiderationLiability",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_IncreaseDecreaseInContractWithCustomerFromUnbilledReceivables": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 11.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period of the amount of unbilled receivables from contracts with customers for work performed for which billing has not occurred, net of uncollectible accounts.",
        "label": "Increase Decrease In Contract With Customer From Unbilled Receivables",
        "negatedTerseLabel": "Unbilled receivables"
       }
      }
     },
     "localname": "IncreaseDecreaseInContractWithCustomerFromUnbilledReceivables",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_LaborAndRelatedExpenseExcludingStockBasedCompensation": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 1.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Labor And Related Expense Excluding Stock Based Compensation",
        "label": "Salaries and wages, payroll taxes and benefits",
        "terseLabel": "Salaries and wages, payroll taxes, and benefits"
       }
      }
     },
     "localname": "LaborAndRelatedExpenseExcludingStockBasedCompensation",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_LeaseTermAndDiscountRateTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the lease term and discount rate under operating and finance leases.",
        "label": "Lease Term and Discount Rate [Table Text Block]",
        "terseLabel": "Schedule of lease term and discount rate"
       }
      }
     },
     "localname": "LeaseTermAndDiscountRateTableTextBlock",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nvee_LeasesSupplementalCashFlowInformationTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of supplemental cash flow information related to operating and finance leases.",
        "label": "Leases, Supplemental Cash Flow Information [Table Text Block]",
        "terseLabel": "Schedule of supplemental cash flow information"
       }
      }
     },
     "localname": "LeasesSupplementalCashFlowInformationTableTextBlock",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nvee_LiabilityBasedAwardsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Liability Based Awards",
        "label": "Liability Based Awards [Member]",
        "terseLabel": "Liability Based Awards"
       }
      }
     },
     "localname": "LiabilityBasedAwardsMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_LineOfCreditFacilityAvailableIncreaseInBorrowingCapacity": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line of Credit Facility, Available Increase in Borrowing Capacity",
        "label": "Line of Credit Facility, Available Increase in Borrowing Capacity",
        "terseLabel": "Available increase in borrowing capacity"
       }
      }
     },
     "localname": "LineOfCreditFacilityAvailableIncreaseInBorrowingCapacity",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_LineOfCreditFacilityCovenantMinimumFixedChargeCoverageRatio": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The Minimum level of fixed charge coverage ratio under the line of credit facility.",
        "label": "Line Of Credit Facility, Covenant, Minimum Fixed Charge Coverage Ratio",
        "terseLabel": "Minimum fixed charge coverage ratio"
       }
      }
     },
     "localname": "LineOfCreditFacilityCovenantMinimumFixedChargeCoverageRatio",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "pureItemType"
    },
    "nvee_LineOfCreditFacilityCovenantNetLeverageRatio": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line of Credit Facility, Covenant, Net Leverage Ratio",
        "label": "Line of Credit Facility, Covenant, Net Leverage Ratio",
        "terseLabel": "Covenant, net leverage ratio"
       }
      }
     },
     "localname": "LineOfCreditFacilityCovenantNetLeverageRatio",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "pureItemType"
    },
    "nvee_LongTermDebtMaturityYearFiveAndThereafter": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/NotesPayableandOtherObligationsFutureContractualMaturitiesofLongtermDebtDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_LongTermDebt",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Long-Term Debt, Maturity, Year Five And Thereafter",
        "label": "Long-Term Debt, Maturity, Year Five And Thereafter",
        "terseLabel": "2027 and thereafter"
       }
      }
     },
     "localname": "LongTermDebtMaturityYearFiveAndThereafter",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsFutureContractualMaturitiesofLongtermDebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_MeasurementPeriodAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Measurement Period [Axis]",
        "label": "Measurement Period [Axis]",
        "terseLabel": "Measurement Period [Axis]"
       }
      }
     },
     "localname": "MeasurementPeriodAxis",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "nvee_MeasurementPeriodDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "[Domain] for Measurement Period [Axis]",
        "label": "Measurement Period [Domain]",
        "terseLabel": "Measurement Period [Domain]"
       }
      }
     },
     "localname": "MeasurementPeriodDomain",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_NV5IncentivePlanMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "NV5 Incentive Plan",
        "label": "NV5 Incentive Plan [Member]",
        "terseLabel": "NV5 Incentive Plan"
       }
      }
     },
     "localname": "NV5IncentivePlanMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_NonCashLeaseExpense": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of net increase (decrease) in right-of-use assets and operating lease liabilities during the period.",
        "label": "Non-Cash Lease Expense",
        "terseLabel": "Non-cash lease expense"
       }
      }
     },
     "localname": "NonCashLeaseExpense",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_NumberOfConsultingEngineeringFirms": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number Of Consulting Engineering Firms",
        "label": "Number Of Consulting Engineering Firms",
        "terseLabel": "Number of consulting engineering firms"
       }
      }
     },
     "localname": "NumberOfConsultingEngineeringFirms",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CommitmentandContingenciesDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "nvee_NumberOfEquipmentOperatingLeases": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number Of Equipment Operating Leases",
        "label": "Number Of Equipment Operating Leases",
        "terseLabel": "Number of equipment operating leases"
       }
      }
     },
     "localname": "NumberOfEquipmentOperatingLeases",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "nvee_NumeratorAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Numerator",
        "label": "Numerator [Abstract]",
        "terseLabel": "Numerator [Abstract]"
       }
      }
     },
     "localname": "NumeratorAbstract",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "nvee_OfficeFurnitureAndEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Furniture and equipment commonly used in offices.",
        "label": "Office Furniture and Equipment [Member]",
        "terseLabel": "Office furniture and equipment"
       }
      }
     },
     "localname": "OfficeFurnitureAndEquipmentMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesEstimatedUsefulLivesofPropertyandEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_OfficeLeasesInitialTerm": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Office Leases Initial Term",
        "label": "Office Leases Initial Term",
        "terseLabel": "Office leases initial term"
       }
      }
     },
     "localname": "OfficeLeasesInitialTerm",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "nvee_OperatingAndFinanceLeasesLiability": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating and finance leases.",
        "label": "Total lease liabilities",
        "negatedTotalLabel": "Total lease liabilities"
       }
      }
     },
     "localname": "OperatingAndFinanceLeasesLiability",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_OperatingAndFinanceLeasesRightOfUseAssets": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's right to use underlying assets under operating and finance leases.",
        "label": "Total leased assets",
        "totalLabel": "Total leased assets"
       }
      }
     },
     "localname": "OperatingAndFinanceLeasesRightOfUseAssets",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_OperatingLeaseNumberOfOptionsToRenew": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Operating Lease Number Of Options To Renew",
        "label": "Operating Lease Number Of Options To Renew",
        "terseLabel": "Number of options to renew"
       }
      }
     },
     "localname": "OperatingLeaseNumberOfOptionsToRenew",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/LeasesNarrativeDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "nvee_OperatingLeaseRightOfUseAssetAccumulatedAmortization": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the amount of accumulated amortization which reduces the balance of lessee's right to use underlying asset under operating lease.",
        "label": "Operating Lease Right Of Use Asset Accumulated Amortization",
        "terseLabel": "Operating right of-use lease assets"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAssetAccumulatedAmortization",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_OtherDirectCosts": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 1.0,
       "parentTag": "us-gaap_DirectOperatingCosts",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Other cost of labor directly related to good produced and service rendered.",
        "label": "Other direct costs",
        "terseLabel": "Other direct costs"
       }
      }
     },
     "localname": "OtherDirectCosts",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_OtherDirectCostsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Other Direct Costs [Member]",
        "label": "Other Direct Costs [Member]",
        "terseLabel": "Other Direct Costs"
       }
      }
     },
     "localname": "OtherDirectCostsMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_PaymentOfContingentConsiderationAndOtherObligationsWithCommonStock": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Common stock issued as payment for contingent consideration.",
        "label": "Payment Of Contingent Consideration And Other Obligations With Common Stock",
        "terseLabel": "Payment of contingent consideration and other obligations with common stock"
       }
      }
     },
     "localname": "PaymentOfContingentConsiderationAndOtherObligationsWithCommonStock",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_PeriodOneMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period One",
        "label": "Period One [Member]",
        "terseLabel": "Period One"
       }
      }
     },
     "localname": "PeriodOneMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_PeriodTwoMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period Two",
        "label": "Period Two [Member]",
        "terseLabel": "Period Two"
       }
      }
     },
     "localname": "PeriodTwoMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_PrivateSectorMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information related to the private sector.",
        "label": "Private Sector [Member]",
        "terseLabel": "Private sector"
       }
      }
     },
     "localname": "PrivateSectorMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_PublicAndQuasipublicSectorMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information related to the public and quasi public sector.",
        "label": "Public and Quasi-Public Sector [Member]",
        "terseLabel": "Public and quasi-public sector"
       }
      }
     },
     "localname": "PublicAndQuasipublicSectorMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails",
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_PublicStockOfferingMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Public Stock Offering",
        "label": "Public Stock Offering [Member]",
        "terseLabel": "Public Stock Offering"
       }
      }
     },
     "localname": "PublicStockOfferingMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/StockholdersEquityDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_PurchasesOfCommonStockTenderedByEmployeesToSatisfyTheRequiredWithholdingTaxesRelatedToStockBasedCompensation": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Purchases of Common Stock Tendered by Employees to Satisfy the Required Withholding Taxes Related to Stock-based Compensation",
        "label": "Purchases of Common Stock Tendered by Employees to Satisfy the Required Withholding Taxes Related to Stock-based Compensation",
        "negatedTerseLabel": "Purchases of common stock tendered by employees to satisfy the required withholding taxes related to stock-based compensation (in shares)"
       }
      }
     },
     "localname": "PurchasesOfCommonStockTenderedByEmployeesToSatisfyTheRequiredWithholdingTaxesRelatedToStockBasedCompensation",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "sharesItemType"
    },
    "nvee_PurchasesOfCommonStockTenderedByEmployeesToSatisfyTheRequiredWithholdingTaxesRelatedToStockBasedCompensation1": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Purchases of Common Stock Tendered by Employees to Satisfy the Required Withholding Taxes Related to Stock-based Compensation 1",
        "label": "Purchases of Common Stock Tendered by Employees to Satisfy the Required Withholding Taxes Related to Stock-based Compensation 1",
        "negatedTerseLabel": "Purchases of common stock tendered by employees to satisfy the required withholding taxes related to stock-based compensation"
       }
      }
     },
     "localname": "PurchasesOfCommonStockTenderedByEmployeesToSatisfyTheRequiredWithholdingTaxesRelatedToStockBasedCompensation1",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_RateOfIncreaseDecreaseInSharesAuthorizedForIssuance": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Rate Of Increase Decrease In Shares Authorized For Issuance",
        "label": "Rate of Increase Decrease in Shares Authorized for Issuance",
        "terseLabel": "Rate of increase decrease in shares authorized for issuance"
       }
      }
     },
     "localname": "RateOfIncreaseDecreaseInSharesAuthorizedForIssuance",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "nvee_RevenueFromContractWithCustomerPercentOfGrossRevenues": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue From Contract With Customer, Percent Of Gross Revenues",
        "label": "Revenue From Contract With Customer, Percent Of Gross Revenues",
        "terseLabel": "Revenue from contract with customer, percent of gross revenues"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerPercentOfGrossRevenues",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "nvee_RightOfUseAssetsObtainedInExchangeForLeaseObligationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Right-Of-Use Assets Obtained in Exchange for Lease Obligations",
        "label": "Right-Of-Use Assets Obtained in Exchange for Lease Obligations [Abstract]",
        "terseLabel": "Right-of-use assets obtained in exchange for lease obligations"
       }
      }
     },
     "localname": "RightOfUseAssetsObtainedInExchangeForLeaseObligationsAbstract",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalCashFlowInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "nvee_ScheduleOfPropertyPlantAndEquipmentEstimatedUsefulLifeTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the estimated useful lives of property, plant and equipment.",
        "label": "Schedule of Property Plant and Equipment, Estimated Useful Life [Table Text Block]",
        "terseLabel": "Schedule of property plant and equipment, estimated useful life"
       }
      }
     },
     "localname": "ScheduleOfPropertyPlantAndEquipmentEstimatedUsefulLifeTableTextBlock",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "nvee_SecondARCreditAgreementMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Second A&amp;R Credit Agreement",
        "label": "Second A&amp;R Credit Agreement [Member]",
        "terseLabel": "Second A&amp;R Credit Agreement"
       }
      }
     },
     "localname": "SecondARCreditAgreementMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_SeniorCreditFacilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the senior credit facility debt instrument.",
        "label": "Senior Credit Facility [Member]",
        "terseLabel": "Senior credit facility"
       }
      }
     },
     "localname": "SeniorCreditFacilityMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails",
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_SharebasedCompensationArrangementbySharebasedPaymentAwardEquityInstrumentsOtherthanOptionsNonvestedWeightedAverageGrantDateFairValueRollForwardRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Roll Forward] [Roll Forward]",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Roll Forward] [Roll Forward]",
        "terseLabel": "Weighted Average Grant Date Fair Value"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementbySharebasedPaymentAwardEquityInstrumentsOtherthanOptionsNonvestedWeightedAverageGrantDateFairValueRollForwardRollForward",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "nvee_StockIssuedDuringPeriodValueAcquisitionsNetOfIssuanceCosts": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock Issued During Period, Value, Acquisitions, Net Of Issuance Costs",
        "label": "Stock Issued During Period, Value, Acquisitions, Net Of Issuance Costs",
        "terseLabel": "Stock issuance for acquisitions"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueAcquisitionsNetOfIssuanceCosts",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "nvee_StockPayableMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the stock payable.",
        "label": "Stock Payable [Member]",
        "terseLabel": "Other obligations"
       }
      }
     },
     "localname": "StockPayableMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_SurveyAndFieldEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the property and equipment that are classified as survey and field equipment.",
        "label": "Survey and Field Equipment [Member]",
        "terseLabel": "Survey and field equipment",
        "verboseLabel": "Survey and field equipment"
       }
      }
     },
     "localname": "SurveyAndFieldEquipmentMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails",
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesEstimatedUsefulLivesofPropertyandEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_UncollateralizedPromissoryNoteMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A written promise to pay a note to a third party with no attached collateral.",
        "label": "Uncollateralized Promissory Note [Member]",
        "terseLabel": "Uncollateralized promissory notes"
       }
      }
     },
     "localname": "UncollateralizedPromissoryNoteMember",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails",
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails",
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "nvee_WeightedAverageCommonSharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Weighted Average Common Shares Outstanding",
        "terseLabel": "Weighted average common shares outstanding:"
       }
      }
     },
     "localname": "WeightedAverageCommonSharesOutstanding",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "stringItemType"
    },
    "nvee_WeightedAverageDiscountRateAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted Average Discount Rate [Abstract]",
        "label": "Weighted Average Discount Rate [Abstract]",
        "terseLabel": "Weighted - Average Discount Rate"
       }
      }
     },
     "localname": "WeightedAverageDiscountRateAbstract",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofLeaseTermandDiscountRateDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "nvee_WeightedAverageRemainingLeaseTermAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted Average Remaining Lease Term [Abstract]",
        "label": "Weighted Average Remaining Lease Term [Abstract]",
        "terseLabel": "Weighted - Average Remaining Lease Term (Years)"
       }
      }
     },
     "localname": "WeightedAverageRemainingLeaseTermAbstract",
     "nsuri": "http://www.nv5.com/20221231",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofLeaseTermandDiscountRateDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ConsolidationItemsAxis": {
     "auth_ref": [
      "r216",
      "r279",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r297",
      "r301",
      "r363",
      "r364",
      "r365",
      "r366",
      "r368",
      "r369",
      "r371",
      "r373",
      "r374",
      "r748",
      "r749"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation Items [Axis]",
        "terseLabel": "Consolidation Items [Axis]"
       }
      }
     },
     "localname": "ConsolidationItemsAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_ConsolidationItemsDomain": {
     "auth_ref": [
      "r216",
      "r279",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r297",
      "r301",
      "r363",
      "r364",
      "r365",
      "r366",
      "r368",
      "r369",
      "r371",
      "r373",
      "r374",
      "r748",
      "r749"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Consolidation Items [Domain]",
        "terseLabel": "Consolidation Items [Domain]"
       }
      }
     },
     "localname": "ConsolidationItemsDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MajorCustomersAxis": {
     "auth_ref": [
      "r307",
      "r686",
      "r754",
      "r807"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer [Axis]",
        "terseLabel": "Customer [Axis]"
       }
      }
     },
     "localname": "MajorCustomersAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_MaximumMember": {
     "auth_ref": [
      "r355",
      "r357",
      "r358",
      "r359",
      "r452",
      "r625",
      "r641",
      "r670",
      "r671",
      "r684",
      "r692",
      "r699",
      "r750",
      "r800",
      "r801",
      "r802",
      "r803",
      "r804",
      "r805"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Maximum [Member]",
        "terseLabel": "Maximum"
       }
      }
     },
     "localname": "MaximumMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails",
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesEstimatedUsefulLivesofPropertyandEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_MinimumMember": {
     "auth_ref": [
      "r355",
      "r357",
      "r358",
      "r359",
      "r452",
      "r625",
      "r641",
      "r670",
      "r671",
      "r684",
      "r692",
      "r699",
      "r750",
      "r800",
      "r801",
      "r802",
      "r803",
      "r804",
      "r805"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Minimum [Member]",
        "terseLabel": "Minimum"
       }
      }
     },
     "localname": "MinimumMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails",
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesEstimatedUsefulLivesofPropertyandEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_NameOfMajorCustomerDomain": {
     "auth_ref": [
      "r307",
      "r686",
      "r754",
      "r807"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Customer [Domain]",
        "terseLabel": "Customer [Domain]"
       }
      }
     },
     "localname": "NameOfMajorCustomerDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_RangeAxis": {
     "auth_ref": [
      "r355",
      "r357",
      "r358",
      "r359",
      "r440",
      "r452",
      "r481",
      "r482",
      "r483",
      "r624",
      "r625",
      "r641",
      "r670",
      "r671",
      "r684",
      "r692",
      "r699",
      "r746",
      "r750",
      "r801",
      "r802",
      "r803",
      "r804",
      "r805"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Axis]",
        "terseLabel": "Statistical Measurement [Axis]"
       }
      }
     },
     "localname": "RangeAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails",
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesEstimatedUsefulLivesofPropertyandEquipmentDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "srt_RangeMember": {
     "auth_ref": [
      "r355",
      "r357",
      "r358",
      "r359",
      "r440",
      "r452",
      "r481",
      "r482",
      "r483",
      "r624",
      "r625",
      "r641",
      "r670",
      "r671",
      "r684",
      "r692",
      "r699",
      "r746",
      "r750",
      "r801",
      "r802",
      "r803",
      "r804",
      "r805"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statistical Measurement [Domain]",
        "terseLabel": "Statistical Measurement [Domain]"
       }
      }
     },
     "localname": "RangeMember",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails",
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesEstimatedUsefulLivesofPropertyandEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_SegmentGeographicalDomain": {
     "auth_ref": [
      "r304",
      "r305",
      "r661",
      "r662",
      "r663",
      "r664",
      "r665",
      "r666",
      "r667",
      "r668",
      "r669",
      "r685",
      "r698",
      "r754"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical [Domain]",
        "terseLabel": "Geographical [Domain]"
       }
      }
     },
     "localname": "SegmentGeographicalDomain",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyGeographicLocationDetails",
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "srt_StatementGeographicalAxis": {
     "auth_ref": [
      "r304",
      "r305",
      "r655",
      "r661",
      "r662",
      "r663",
      "r664",
      "r665",
      "r666",
      "r667",
      "r668",
      "r669",
      "r685",
      "r698",
      "r754"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Geographical [Axis]",
        "terseLabel": "Geographical [Axis]"
       }
      }
     },
     "localname": "StatementGeographicalAxis",
     "nsuri": "http://fasb.org/srt/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyGeographicLocationDetails",
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Accounting Policies [Abstract]",
        "terseLabel": "Accounting Policies [Abstract]"
       }
      }
     },
     "localname": "AccountingPoliciesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_AccountingStandardsUpdate202108Member": {
     "auth_ref": [
      "r539",
      "r540"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accounting Standards Update 2021-08 Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers.",
        "label": "Accounting Standards Update 2021-08 [Member]",
        "terseLabel": "Accounting Standards Update 2021-08"
       }
      }
     },
     "localname": "AccountingStandardsUpdate202108Member",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/RecentlyIssuedAccountingPronouncementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": {
     "auth_ref": [
      "r13"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period.",
        "label": "Accounts Payable and Accrued Liabilities Disclosure [Text Block]",
        "terseLabel": "Accrued Liabilities"
       }
      }
     },
     "localname": "AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/AccruedLiabilities"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AccountsPayableCurrent": {
     "auth_ref": [
      "r12",
      "r697"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Accounts Payable, Current",
        "terseLabel": "Accounts payable"
       }
      }
     },
     "localname": "AccountsPayableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableGross": {
     "auth_ref": [
      "r193",
      "r309"
     ],
     "calculation": {
      "http://www.nv5.com/role/BilledandUnbilledReceivablesSummaryofBilledandUnbilledReceivablesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_AccountsReceivableNetCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business.",
        "label": "Accounts Receivable, before Allowance for Credit Loss",
        "terseLabel": "Billed receivables"
       }
      }
     },
     "localname": "AccountsReceivableGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BilledandUnbilledReceivablesSummaryofBilledandUnbilledReceivablesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "auth_ref": [
      "r309",
      "r310"
     ],
     "calculation": {
      "http://www.nv5.com/role/BilledandUnbilledReceivablesSummaryofBilledandUnbilledReceivablesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance for credit loss, of right to consideration from customer for product sold and service rendered in normal course of business, classified as current.",
        "label": "Accounts Receivable, after Allowance for Credit Loss, Current",
        "terseLabel": "Billed receivables, net",
        "totalLabel": "Billed receivables, net"
       }
      }
     },
     "localname": "AccountsReceivableNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BilledandUnbilledReceivablesSummaryofBilledandUnbilledReceivablesDetails",
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedEmployeeBenefitsCurrent": {
     "auth_ref": [
      "r16"
     ],
     "calculation": {
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations, excluding pension and other postretirement benefits, incurred through that date and payable for perquisites provided to employees pertaining to services received from them. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Accrued Employee Benefits, Current",
        "terseLabel": "Benefits"
       }
      }
     },
     "localname": "AccruedEmployeeBenefitsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r16"
     ],
     "calculation": {
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 5.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. Examples include taxes, interest, rent and utilities. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Accrued Liabilities, Current",
        "terseLabel": "Accrued liabilities",
        "totalLabel": "Total"
       }
      }
     },
     "localname": "AccruedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails",
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedVacationCurrent": {
     "auth_ref": [
      "r16",
      "r111"
     ],
     "calculation": {
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for unused vacation time owed to employees based on the entity's vacation benefit given to its employees. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer).",
        "label": "Accrued Vacation, Current",
        "terseLabel": "Accrued vacation"
       }
      }
     },
     "localname": "AccruedVacationCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Acquired Finite-Lived Intangible Assets [Line Items]",
        "terseLabel": "Acquired Finite-Lived Intangible Assets [Line Items]"
       }
      }
     },
     "localname": "AcquiredFiniteLivedIntangibleAssetsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": {
     "auth_ref": [
      "r80"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Acquired Finite-Lived Intangible Assets, Weighted Average Useful Life",
        "terseLabel": "Weighted average useful life"
       }
      }
     },
     "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsWeightedAverageUsefulLivesofIntangibleAssetsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_AdditionalPaidInCapital": {
     "auth_ref": [
      "r7",
      "r697"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of excess of issue price over par or stated value of stock and from other transaction involving stock or stockholder. Includes, but is not limited to, additional paid-in capital (APIC) for common and preferred stock.",
        "label": "Additional Paid in Capital",
        "terseLabel": "Additional paid-in capital"
       }
      }
     },
     "localname": "AdditionalPaidInCapital",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "auth_ref": [
      "r490",
      "r491",
      "r492",
      "r721",
      "r722",
      "r723",
      "r790"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders.",
        "label": "Additional Paid-in Capital [Member]",
        "terseLabel": "Additional Paid-In Capital"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdjustmentsForNewAccountingPronouncementsAxis": {
     "auth_ref": [
      "r175",
      "r176",
      "r177",
      "r178",
      "r179",
      "r223",
      "r224",
      "r225",
      "r227",
      "r236",
      "r312",
      "r313",
      "r317",
      "r318",
      "r319",
      "r320",
      "r323",
      "r324",
      "r490",
      "r491",
      "r492",
      "r519",
      "r520",
      "r521",
      "r522",
      "r539",
      "r540",
      "r541",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r577",
      "r578",
      "r586",
      "r587",
      "r591",
      "r592",
      "r593",
      "r594",
      "r613",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r629",
      "r630",
      "r631",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r647",
      "r648",
      "r649",
      "r650",
      "r651",
      "r652",
      "r653"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by amendment to accounting standards.",
        "label": "Accounting Standards Update [Axis]",
        "terseLabel": "Accounting Standards Update [Axis]"
       }
      }
     },
     "localname": "AdjustmentsForNewAccountingPronouncementsAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/RecentlyIssuedAccountingPronouncementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "auth_ref": [
      "r113",
      "r114",
      "r455"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.",
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "terseLabel": "Stock-based compensation"
       }
      }
     },
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]",
        "terseLabel": "Adjustments to reconcile net income to net cash provided by operating activities:"
       }
      }
     },
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AdvertisingCostsPolicyTextBlock": {
     "auth_ref": [
      "r494"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for advertising cost.",
        "label": "Advertising Cost [Policy Text Block]",
        "terseLabel": "Advertising"
       }
      }
     },
     "localname": "AdvertisingCostsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AdvertisingExpense": {
     "auth_ref": [
      "r495"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line.",
        "label": "Advertising Expense",
        "terseLabel": "Advertising expense"
       }
      }
     },
     "localname": "AdvertisingExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "auth_ref": [
      "r485"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized.",
        "label": "Share-Based Payment Arrangement, Expense",
        "terseLabel": "Deferred compensation"
       }
      }
     },
     "localname": "AllocatedShareBasedCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock": {
     "auth_ref": [
      "r74",
      "r730"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of allowance for credit loss on financing receivable.",
        "label": "Financing Receivable, Allowance for Credit Loss [Table Text Block]",
        "terseLabel": "Schedule of Allowance for credit losses on financing receivables"
       }
      }
     },
     "localname": "AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BilledandUnbilledReceivablesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivable": {
     "auth_ref": [
      "r194",
      "r311",
      "r325",
      "r326",
      "r329"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit loss on accounts receivable.",
        "label": "Accounts Receivable, Allowance for Credit Loss",
        "periodEndLabel": "Balance as of the end of the year",
        "periodStartLabel": "Balance as of the beginning of the year"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BilledandUnbilledReceivablesActivityintheAllowanceforDoubtfulAccountsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableCurrent": {
     "auth_ref": [
      "r194",
      "r311",
      "r325"
     ],
     "calculation": {
      "http://www.nv5.com/role/BilledandUnbilledReceivablesSummaryofBilledandUnbilledReceivablesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_AccountsReceivableNetCurrent",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit loss on accounts receivable, classified as current.",
        "label": "Accounts Receivable, Allowance for Credit Loss, Current",
        "negatedLabel": "Less: allowance for doubtful accounts"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BilledandUnbilledReceivablesSummaryofBilledandUnbilledReceivablesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Accounts Receivable, Allowance for Credit Loss [Roll Forward]",
        "terseLabel": "Accounts Receivable, Allowance for Credit Loss [Roll Forward]"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableRollforward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BilledandUnbilledReceivablesActivityintheAllowanceforDoubtfulAccountsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": {
     "auth_ref": [
      "r328"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance.",
        "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff",
        "negatedLabel": "Write-offs of uncollectible accounts"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BilledandUnbilledReceivablesActivityintheAllowanceforDoubtfulAccountsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfFinancingCosts": {
     "auth_ref": [
      "r26",
      "r398",
      "r589",
      "r715"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization expense attributable to debt issuance costs.",
        "label": "Amortization of Debt Issuance Costs",
        "terseLabel": "Amortization of debt issuance costs"
       }
      }
     },
     "localname": "AmortizationOfFinancingCosts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "auth_ref": [
      "r44",
      "r78",
      "r85"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. As a noncash expense, this element is added back to net income when calculating cash provided by or used in operations using the indirect method.",
        "label": "Amortization of Intangible Assets",
        "terseLabel": "Amortization expense",
        "verboseLabel": "Amortization expense"
       }
      }
     },
     "localname": "AmortizationOfIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsNarrativeDetails",
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "auth_ref": [
      "r263"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "terseLabel": "Antidilutive securities (in shares)"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EarningsPerShareNarrativeDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "auth_ref": [
      "r56"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of antidilutive security.",
        "label": "Antidilutive Securities [Axis]",
        "terseLabel": "Antidilutive Securities [Axis]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EarningsPerShareNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]",
        "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EarningsPerShareNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "auth_ref": [
      "r56"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Incremental common shares attributable to securities that were not included in diluted earnings per share (EPS) because to do so would increase EPS amounts or decrease loss per share amounts for the period presented.",
        "label": "Antidilutive Securities, Name [Domain]",
        "terseLabel": "Antidilutive Securities, Name [Domain]"
       }
      }
     },
     "localname": "AntidilutiveSecuritiesNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EarningsPerShareNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_Assets": {
     "auth_ref": [
      "r154",
      "r168",
      "r189",
      "r213",
      "r287",
      "r293",
      "r299",
      "r316",
      "r363",
      "r364",
      "r366",
      "r367",
      "r368",
      "r370",
      "r372",
      "r374",
      "r375",
      "r546",
      "r548",
      "r567",
      "r697",
      "r748",
      "r749",
      "r798"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "Assets",
        "terseLabel": "Assets",
        "totalLabel": "Total Assets"
       }
      }
     },
     "localname": "Assets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets [Abstract]",
        "terseLabel": "Assets",
        "verboseLabel": "Assets"
       }
      }
     },
     "localname": "AssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsCurrent": {
     "auth_ref": [
      "r183",
      "r195",
      "r213",
      "r316",
      "r363",
      "r364",
      "r366",
      "r367",
      "r368",
      "r370",
      "r372",
      "r374",
      "r375",
      "r546",
      "r548",
      "r567",
      "r697",
      "r748",
      "r749",
      "r798"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 6.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all assets that are expected to be realized in cash, sold, or consumed within one year (or the normal operating cycle, if longer). Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
        "label": "Assets, Current",
        "totalLabel": "Total current assets"
       }
      }
     },
     "localname": "AssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Assets, Current [Abstract]",
        "terseLabel": "Current assets:"
       }
      }
     },
     "localname": "AssetsCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AwardTypeAxis": {
     "auth_ref": [
      "r459",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of award under share-based payment arrangement.",
        "label": "Award Type [Axis]",
        "terseLabel": "Award Type [Axis]"
       }
      }
     },
     "localname": "AwardTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails",
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails",
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "auth_ref": [
      "r537",
      "r690",
      "r691"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identification of the acquiree in a material business combination (or series of individually immaterial business combinations), which may include the name or other type of identification of the acquiree.",
        "label": "Business Acquisition, Acquiree [Domain]",
        "terseLabel": "Business Acquisition, Acquiree [Domain]"
       }
      }
     },
     "localname": "BusinessAcquisitionAcquireeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails",
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsNarrativeDetails",
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "auth_ref": [
      "r125",
      "r126",
      "r537",
      "r690",
      "r691"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by business combination or series of individually immaterial business combinations.",
        "label": "Business Acquisition [Axis]",
        "terseLabel": "Business Acquisition [Axis]"
       }
      }
     },
     "localname": "BusinessAcquisitionAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails",
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsNarrativeDetails",
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessAcquisitionEquityInterestIssuedOrIssuableValueAssigned": {
     "auth_ref": [
      "r141"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of equity interests (such as common shares, preferred shares, or partnership interest) issued or issuable to acquire the entity.",
        "label": "Business Acquisition, Equity Interest Issued or Issuable, Value Assigned",
        "terseLabel": "Consideration of common stock",
        "verboseLabel": "Consideration of common stock"
       }
      }
     },
     "localname": "BusinessAcquisitionEquityInterestIssuedOrIssuableValueAssigned",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails",
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessAcquisitionProFormaEarningsPerShareBasic": {
     "auth_ref": [
      "r788",
      "r789"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The pro forma basic net income per share for a period as if the business combination or combinations had been completed at the beginning of a period.",
        "label": "Business Acquisition, Pro Forma Earnings Per Share, Basic",
        "terseLabel": "Basic earnings per share (in dollars per Share)"
       }
      }
     },
     "localname": "BusinessAcquisitionProFormaEarningsPerShareBasic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsProFormaConsolidatedResultsofOperationsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_BusinessAcquisitionProFormaEarningsPerShareDiluted": {
     "auth_ref": [
      "r788",
      "r789"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The pro forma diluted net income per share for a period as if the business combination or combinations had been completed at the beginning of a period.",
        "label": "Business Acquisition, Pro Forma Earnings Per Share, Diluted",
        "terseLabel": "Diluted earnings per share (in dollars per Share)"
       }
      }
     },
     "localname": "BusinessAcquisitionProFormaEarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsProFormaConsolidatedResultsofOperationsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_BusinessAcquisitionProFormaInformationTextBlock": {
     "auth_ref": [
      "r788",
      "r789"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of pro forma results of operations for a material business acquisition or series of individually immaterial business acquisitions that are material in the aggregate.",
        "label": "Business Acquisition, Pro Forma Information [Table Text Block]",
        "terseLabel": "Schedule of Pro forma consolidated results of operations"
       }
      }
     },
     "localname": "BusinessAcquisitionProFormaInformationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount": {
     "auth_ref": [
      "r142"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of goodwill arising from a business combination that is expected to be deductible for tax purposes.",
        "label": "Business Acquisition, Goodwill, Expected Tax Deductible Amount",
        "terseLabel": "Goodwill"
       }
      }
     },
     "localname": "BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessAcquisitionsProFormaNetIncomeLoss": {
     "auth_ref": [
      "r535",
      "r536"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The pro forma net Income or Loss for the period as if the business combination or combinations had been completed at the beginning of a period.",
        "label": "Business Acquisition, Pro Forma Net Income (Loss)",
        "terseLabel": "Net income"
       }
      }
     },
     "localname": "BusinessAcquisitionsProFormaNetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsProFormaConsolidatedResultsofOperationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessAcquisitionsProFormaRevenue": {
     "auth_ref": [
      "r535",
      "r536"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The pro forma revenue for a period as if the business combination or combinations had been completed at the beginning of the period.",
        "label": "Business Acquisition, Pro Forma Revenue",
        "terseLabel": "Gross revenues"
       }
      }
     },
     "localname": "BusinessAcquisitionsProFormaRevenue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsProFormaConsolidatedResultsofOperationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationAcquisitionRelatedCosts": {
     "auth_ref": [
      "r123"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This element represents acquisition-related costs incurred to effect a business combination which costs have been expensed during the period. Such costs include finder's fees; advisory, legal, accounting, valuation, and other professional or consulting fees; general administrative costs, including the costs of maintaining an internal acquisitions department; and may include costs of registering and issuing debt and equity securities.",
        "label": "Business Combination, Acquisition Related Costs",
        "terseLabel": "Business combination, acquisition related costs"
       }
      }
     },
     "localname": "BusinessCombinationAcquisitionRelatedCosts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationAndAssetAcquisitionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combination and Asset Acquisition [Abstract]"
       }
      }
     },
     "localname": "BusinessCombinationAndAssetAcquisitionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferred1": {
     "auth_ref": [
      "r136",
      "r137",
      "r140"
     ],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of consideration transferred, consisting of acquisition-date fair value of assets transferred by the acquirer, liabilities incurred by the acquirer, and equity interest issued by the acquirer.",
        "label": "Business Combination, Consideration Transferred",
        "terseLabel": "Aggregate purchase price",
        "totalLabel": "Total Consideration",
        "verboseLabel": "Total consideration"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferred1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails",
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails",
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable": {
     "auth_ref": [
      "r136",
      "r137"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of equity interests of the acquirer, including instruments or interests issued or issuable in consideration for the business combination.",
        "label": "Business Combination, Consideration Transferred, Equity Interests Issued and Issuable",
        "terseLabel": "Consideration transferred of common stock"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferredEquityInterestsIssuedAndIssuable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationConsiderationTransferredLiabilitiesIncurred": {
     "auth_ref": [
      "r134",
      "r136",
      "r137",
      "r543"
     ],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_BusinessCombinationConsiderationTransferred1",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities incurred by the acquirer as part of consideration transferred in a business combination.",
        "label": "Business Combination, Consideration Transferred, Liabilities Incurred",
        "terseLabel": "Contingent earn-out liability (Cash and stock)"
       }
      }
     },
     "localname": "BusinessCombinationConsiderationTransferredLiabilitiesIncurred",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1": {
     "auth_ref": [
      "r545",
      "r714"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in the value of a contingent consideration liability, including, but not limited to, differences arising upon settlement.",
        "label": "Business Combination, Contingent Consideration Arrangements, Change in Amount of Contingent Consideration, Liability",
        "terseLabel": "Change in fair value of contingent consideration"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://www.nv5.com/role/ContingentConsiderationSummaryofContingentConsiderationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiability": {
     "auth_ref": [
      "r135",
      "r138",
      "r544"
     ],
     "calculation": {
      "http://www.nv5.com/role/ContingentConsiderationSummaryofContingentConsiderationDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination.",
        "label": "Business Combination, Contingent Consideration, Liability",
        "periodEndLabel": "Total contingent consideration, end of the period",
        "periodStartLabel": "Contingent consideration, beginning of the year",
        "terseLabel": "Earn-out of cash fair value"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails",
      "http://www.nv5.com/role/ContingentConsiderationSummaryofContingentConsiderationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiabilityCurrent": {
     "auth_ref": [
      "r135",
      "r139"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      },
      "http://www.nv5.com/role/ContingentConsiderationSummaryofContingentConsiderationDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_BusinessCombinationContingentConsiderationLiability",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination, expected to be settled within one year or the normal operating cycle, if longer.",
        "label": "Business Combination, Contingent Consideration, Liability, Current",
        "terseLabel": "Current portion of contingent consideration",
        "verboseLabel": "Current portion of contingent consideration"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://www.nv5.com/role/ContingentConsiderationSummaryofContingentConsiderationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationContingentConsiderationLiabilityNoncurrent": {
     "auth_ref": [
      "r135",
      "r139"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      },
      "http://www.nv5.com/role/ContingentConsiderationSummaryofContingentConsiderationDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_BusinessCombinationContingentConsiderationLiability",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liability recognized arising from contingent consideration in a business combination, expected to be settled beyond one year or the normal operating cycle, if longer.",
        "label": "Business Combination, Contingent Consideration, Liability, Noncurrent",
        "terseLabel": "Contingent consideration, less current portion",
        "verboseLabel": "Contingent consideration, less current portion"
       }
      }
     },
     "localname": "BusinessCombinationContingentConsiderationLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://www.nv5.com/role/ContingentConsiderationSummaryofContingentConsiderationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "auth_ref": [
      "r143",
      "r538"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for a business combination (or series of individually immaterial business combinations) completed during the period, including background, timing, and recognized assets and liabilities. The disclosure may include leverage buyout transactions (as applicable).",
        "label": "Business Combination Disclosure [Text Block]",
        "terseLabel": "Business Acquisitions"
       }
      }
     },
     "localname": "BusinessCombinationDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitions"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual": {
     "auth_ref": [
      "r124"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "This element represents the amount of revenue of the acquiree since the acquisition date included in the consolidated income statement for the reporting period.",
        "label": "Business Combination, Pro Forma Information, Revenue of Acquiree since Acquisition Date, Actual",
        "terseLabel": "Gross revenues"
       }
      }
     },
     "localname": "BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsResultsofOperationsFromanyBusinessAcquiredDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets": {
     "auth_ref": [
      "r128"
     ],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of assets acquired at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Assets",
        "totalLabel": "Total Assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": {
     "auth_ref": [
      "r128"
     ],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents",
        "terseLabel": "Cash"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables": {
     "auth_ref": [
      "r128"
     ],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables",
        "terseLabel": "Billed and unbilled receivables, net"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": {
     "auth_ref": [
      "r128"
     ],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities",
        "negatedTerseLabel": "Deferred tax liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": {
     "auth_ref": [
      "r127",
      "r128"
     ],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles",
        "terseLabel": "Intangible assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities": {
     "auth_ref": [
      "r128"
     ],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities assumed at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Liabilities",
        "negatedLabel": "Liabilities"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet": {
     "auth_ref": [
      "r127",
      "r128"
     ],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount recognized as of the acquisition date for the identifiable assets acquired in excess of (less than) the aggregate liabilities assumed.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Net",
        "totalLabel": "Net assets acquired"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets": {
     "auth_ref": [
      "r128"
     ],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of other assets expected to be realized or consumed after one year or the normal operating cycle, if longer, acquired at the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Other Noncurrent Assets",
        "terseLabel": "Other assets"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": {
     "auth_ref": [
      "r127",
      "r128"
     ],
     "calculation": {
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment",
        "terseLabel": "Property and equipment"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": {
     "auth_ref": [
      "r128"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed.",
        "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net",
        "terseLabel": "Excess consideration over the amounts assigned to the net assets acquired (Goodwill)"
       }
      }
     },
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BusinessCombinationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Business Combinations [Abstract]",
        "terseLabel": "Business Combinations [Abstract]"
       }
      }
     },
     "localname": "BusinessCombinationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_CapitalLeaseObligationsIncurred": {
     "auth_ref": [
      "r49",
      "r50"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in lease obligation from new lease.",
        "label": "Lease Obligation Incurred",
        "terseLabel": "Finance leases"
       }
      }
     },
     "localname": "CapitalLeaseObligationsIncurred",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r46",
      "r185",
      "r672"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.",
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "terseLabel": "Cash and cash equivalents"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "auth_ref": [
      "r47"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value.",
        "label": "Cash and Cash Equivalents, Policy [Policy Text Block]",
        "terseLabel": "Cash and Cash Equivalents"
       }
      }
     },
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "auth_ref": [
      "r40",
      "r46",
      "r52"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents",
        "periodEndLabel": "Cash and cash equivalents \u2013 end of period",
        "periodStartLabel": "Cash and cash equivalents \u2013 beginning of period"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "auth_ref": [
      "r40",
      "r148"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "totalLabel": "Net (decrease) increase in cash and cash equivalents"
       }
      }
     },
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ClassOfStockLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Class of Stock [Line Items]",
        "terseLabel": "Class of Stock [Line Items]"
       }
      }
     },
     "localname": "ClassOfStockLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockholdersEquityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingencies": {
     "auth_ref": [
      "r20",
      "r159",
      "r172"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.",
        "label": "Commitments and Contingencies",
        "terseLabel": "Commitments and contingencies"
       }
      }
     },
     "localname": "CommitmentsAndContingencies",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Commitments and Contingencies Disclosure [Abstract]",
        "terseLabel": "Commitments and Contingencies Disclosure [Abstract]"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "auth_ref": [
      "r96",
      "r351",
      "r352",
      "r657",
      "r747"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for commitments and contingencies.",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "terseLabel": "Commitments and Contingencies"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CommitmentsandContingencies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CommonStockMember": {
     "auth_ref": [
      "r721",
      "r722",
      "r790"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock that is subordinate to all other stock of the issuer.",
        "label": "Common Stock [Member]",
        "terseLabel": "Common Stock"
       }
      }
     },
     "localname": "CommonStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r6"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face amount or stated value per share of common stock.",
        "label": "Common Stock, Par or Stated Value Per Share",
        "terseLabel": "Common stock, par value (in dollars per share)"
       }
      }
     },
     "localname": "CommonStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETSParentheticals"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "auth_ref": [
      "r6"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws.",
        "label": "Common Stock, Shares Authorized",
        "terseLabel": "Common stock, shares authorized (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETSParentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesIssued": {
     "auth_ref": [
      "r6"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.",
        "label": "Common Stock, Shares, Issued",
        "terseLabel": "Common stock, shares issued (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETSParentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "auth_ref": [
      "r6",
      "r102"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.",
        "label": "Common Stock, Shares, Outstanding",
        "terseLabel": "Common stock, shares outstanding (in shares)"
       }
      }
     },
     "localname": "CommonStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETSParentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockValue": {
     "auth_ref": [
      "r6",
      "r697"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate par or stated value of issued nonredeemable common stock (or common stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable common shares, par value and other disclosure concepts are in another section within stockholders' equity.",
        "label": "Common Stock, Value, Issued",
        "terseLabel": "Common stock, $0.01 par value; 45,000,000 shares authorized, 15,523,300 and 15,414,005 shares issued and outstanding as of December 31, 2022 and January 1, 2022, respectively"
       }
      }
     },
     "localname": "CommonStockValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Retirement Benefits [Abstract]",
        "terseLabel": "Retirement Benefits [Abstract]"
       }
      }
     },
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_ComputerEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Long lived, depreciable assets that are used in the creation, maintenance and utilization of information systems.",
        "label": "Computer Equipment [Member]",
        "terseLabel": "Computer equipment",
        "verboseLabel": "Computer equipment"
       }
      }
     },
     "localname": "ComputerEquipmentMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails",
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesEstimatedUsefulLivesofPropertyandEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "auth_ref": [
      "r59",
      "r60",
      "r146",
      "r147",
      "r307",
      "r656"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage.",
        "label": "Concentration Risk Benchmark [Domain]",
        "terseLabel": "Concentration Risk Benchmark [Domain]"
       }
      }
     },
     "localname": "ConcentrationRiskBenchmarkDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "auth_ref": [
      "r59",
      "r60",
      "r146",
      "r147",
      "r307",
      "r654",
      "r656"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by benchmark of concentration risk.",
        "label": "Concentration Risk Benchmark [Axis]",
        "terseLabel": "Concentration Risk Benchmark [Axis]"
       }
      }
     },
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "auth_ref": [
      "r59",
      "r60",
      "r146",
      "r147",
      "r307",
      "r656",
      "r808"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender.",
        "label": "Concentration Risk Type [Axis]",
        "terseLabel": "Concentration Risk Type [Axis]"
       }
      }
     },
     "localname": "ConcentrationRiskByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskCreditRisk": {
     "auth_ref": [
      "r165",
      "r272"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for credit risk.",
        "label": "Concentration Risk, Credit Risk, Policy [Policy Text Block]",
        "terseLabel": "Concentration of Credit Risk"
       }
      }
     },
     "localname": "ConcentrationRiskCreditRisk",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "auth_ref": [
      "r59",
      "r60",
      "r146",
      "r147",
      "r307"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.",
        "label": "Concentration Risk, Percentage",
        "terseLabel": "Concentration risk, percentage"
       }
      }
     },
     "localname": "ConcentrationRiskPercentage1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "auth_ref": [
      "r59",
      "r60",
      "r146",
      "r147",
      "r307",
      "r656"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration.",
        "label": "Concentration Risk Type [Domain]",
        "terseLabel": "Concentration Risk Type [Domain]"
       }
      }
     },
     "localname": "ConcentrationRiskTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ContingentConsiderationByTypeAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of contingent consideration.",
        "label": "Contingent Consideration by Type [Axis]",
        "terseLabel": "Contingent Consideration by Type [Axis]"
       }
      }
     },
     "localname": "ContingentConsiderationByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ContingentConsiderationTypeDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Description of contingent payment arrangement.",
        "label": "Contingent Consideration Type [Domain]",
        "terseLabel": "Contingent Consideration Type [Domain]"
       }
      }
     },
     "localname": "ContingentConsiderationTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent": {
     "auth_ref": [
      "r325",
      "r424"
     ],
     "calculation": {
      "http://www.nv5.com/role/BilledandUnbilledReceivablesSummaryofBilledandUnbilledReceivablesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_ContractWithCustomerAssetNetCurrent",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of allowance for credit loss for right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.",
        "label": "Contract with Customer, Asset, Allowance for Credit Loss, Current",
        "negatedLabel": "Less: allowance for doubtful accounts"
       }
      }
     },
     "localname": "ContractWithCustomerAssetAccumulatedAllowanceForCreditLossCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BilledandUnbilledReceivablesSummaryofBilledandUnbilledReceivablesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerAssetGrossCurrent": {
     "auth_ref": [
      "r752",
      "r753"
     ],
     "calculation": {
      "http://www.nv5.com/role/BilledandUnbilledReceivablesSummaryofBilledandUnbilledReceivablesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_ContractWithCustomerAssetNetCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.",
        "label": "Contract with Customer, Asset, before Allowance for Credit Loss, Current",
        "terseLabel": "Unbilled receivables"
       }
      }
     },
     "localname": "ContractWithCustomerAssetGrossCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BilledandUnbilledReceivablesSummaryofBilledandUnbilledReceivablesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerAssetNetCurrent": {
     "auth_ref": [
      "r422",
      "r424",
      "r437"
     ],
     "calculation": {
      "http://www.nv5.com/role/BilledandUnbilledReceivablesSummaryofBilledandUnbilledReceivablesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after allowance for credit loss, of right to consideration in exchange for good or service transferred to customer when right is conditioned on something other than passage of time, classified as current.",
        "label": "Contract with Customer, Asset, after Allowance for Credit Loss, Current",
        "terseLabel": "Unbilled receivables, net",
        "totalLabel": "Unbilled receivables, net"
       }
      }
     },
     "localname": "ContractWithCustomerAssetNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BilledandUnbilledReceivablesSummaryofBilledandUnbilledReceivablesDetails",
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerBasisOfPricingAxis": {
     "auth_ref": [
      "r687",
      "r754"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by basis of pricing for contract representing right to consideration in exchange for good or service transferred to customer.",
        "label": "Contract with Customer, Basis of Pricing [Axis]",
        "terseLabel": "Contract with Customer, Basis of Pricing [Axis]"
       }
      }
     },
     "localname": "ContractWithCustomerBasisOfPricingAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ContractWithCustomerBasisOfPricingDomain": {
     "auth_ref": [
      "r687",
      "r754"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Basis of pricing for contract with customer. Includes, but is not limited to, fixed-price and time-and-materials contracts.",
        "label": "Contract with Customer, Basis of Pricing [Domain]",
        "terseLabel": "Contract with Customer, Basis of Pricing [Domain]"
       }
      }
     },
     "localname": "ContractWithCustomerBasisOfPricingDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ContractWithCustomerLiability": {
     "auth_ref": [
      "r422",
      "r423",
      "r437"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable.",
        "label": "Contract with Customer, Liability",
        "terseLabel": "Billings in excess of costs and estimated earnings on uncompleted contracts"
       }
      }
     },
     "localname": "ContractWithCustomerLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://www.nv5.com/role/RecentlyIssuedAccountingPronouncementsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ContractWithCustomerLiabilityRevenueRecognized": {
     "auth_ref": [
      "r438"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of revenue recognized that was previously included in balance of obligation to transfer good or service to customer for which consideration from customer has been received or is due.",
        "label": "Contract with Customer, Liability, Revenue Recognized",
        "terseLabel": "Contract with customer liability, revenue recognized"
       }
      }
     },
     "localname": "ContractWithCustomerLiabilityRevenueRecognized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CorporateNonSegmentMember": {
     "auth_ref": [
      "r70",
      "r292",
      "r293",
      "r294",
      "r295",
      "r301",
      "r727"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Corporate headquarters or functional department that may not earn revenues or may earn revenues that are only incidental to the activities of the entity and is not considered an operating segment.",
        "label": "Corporate, Non-Segment [Member]",
        "terseLabel": "Corporate"
       }
      }
     },
     "localname": "CorporateNonSegmentMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CostDirectLabor": {
     "auth_ref": [
      "r713"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 3.0,
       "parentTag": "us-gaap_DirectOperatingCosts",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Cost of labor directly related to good produced and service rendered. Includes, but is not limited to, payroll cost and equity-based compensation.",
        "label": "Cost, Direct Labor",
        "terseLabel": "Salaries and wages"
       }
      }
     },
     "localname": "CostDirectLabor",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CreditFacilityAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.",
        "label": "Credit Facility [Axis]",
        "terseLabel": "Credit Facility [Axis]"
       }
      }
     },
     "localname": "CreditFacilityAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CreditFacilityDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Type of credit facility. Credit facilities provide capital to borrowers without the need to structure a loan for each borrowing.",
        "label": "Credit Facility [Domain]",
        "terseLabel": "Concept not found: {http://fasb.org/us-gaap/2021-01-31}CreditFacilityDomain"
       }
      }
     },
     "localname": "CreditFacilityDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "auth_ref": [
      "r719",
      "r785",
      "r787"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction.",
        "label": "Current Federal Tax Expense (Benefit)",
        "verboseLabel": "Federal"
       }
      }
     },
     "localname": "CurrentFederalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentForeignTaxExpenseBenefit": {
     "auth_ref": [
      "r719",
      "r785"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Current Foreign Tax Expense (Benefit)",
        "verboseLabel": "Foreign"
       }
      }
     },
     "localname": "CurrentForeignTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r121",
      "r516",
      "r529",
      "r719"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.",
        "label": "Current Income Tax Expense (Benefit)",
        "totalLabel": "Total current income tax expense"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "auth_ref": [
      "r719",
      "r785",
      "r787"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.",
        "label": "Current State and Local Tax Expense (Benefit)",
        "verboseLabel": "State"
       }
      }
     },
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "auth_ref": [
      "r57",
      "r307"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer.",
        "label": "Customer Concentration Risk [Member]",
        "terseLabel": "Customer Concentration Risk"
       }
      }
     },
     "localname": "CustomerConcentrationRiskMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CustomerListsMember": {
     "auth_ref": [
      "r132"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information about customers such as their name and contact information; it may also be an extensive database that includes other information about the customers such as their order history and demographic information.",
        "label": "Customer Lists [Member]",
        "terseLabel": "Customer backlog",
        "verboseLabel": "Customer backlog"
       }
      }
     },
     "localname": "CustomerListsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsWeightedAverageUsefulLivesofIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CustomerRelationshipsMember": {
     "auth_ref": [
      "r133"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships.",
        "label": "Customer Relationships [Member]",
        "terseLabel": "Customer relationships",
        "verboseLabel": "Customer relationships"
       }
      }
     },
     "localname": "CustomerRelationshipsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsWeightedAverageUsefulLivesofIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "auth_ref": [
      "r98",
      "r211",
      "r381",
      "r382",
      "r383",
      "r384",
      "r385",
      "r386",
      "r387",
      "r392",
      "r399",
      "r400",
      "r402"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.",
        "label": "Debt Disclosure [Text Block]",
        "terseLabel": "Notes Payable and Other Obligations"
       }
      }
     },
     "localname": "DebtDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligations"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DebtInstrumentAxis": {
     "auth_ref": [
      "r0",
      "r1",
      "r2",
      "r155",
      "r157",
      "r167",
      "r216",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r382",
      "r388",
      "r389",
      "r390",
      "r391",
      "r393",
      "r394",
      "r395",
      "r396",
      "r397",
      "r398",
      "r590",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r717"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities.",
        "label": "Debt Instrument [Axis]",
        "terseLabel": "Debt Instrument [Axis]"
       }
      }
     },
     "localname": "DebtInstrumentAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails",
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails",
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails",
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentCarryingAmount": {
     "auth_ref": [
      "r2",
      "r157",
      "r167",
      "r403"
     ],
     "calculation": {
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails_1": {
       "order": 1.0,
       "parentTag": "us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but is not limited to, notes payable, bonds payable, commercial loans, mortgage loans, convertible debt, subordinated debt and other types of debt.",
        "label": "Long-Term Debt, Gross",
        "terseLabel": "Long-term Debt, Gross"
       }
      }
     },
     "localname": "DebtInstrumentCarryingAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtInstrumentLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Debt Instrument [Line Items]",
        "terseLabel": "Debt Instrument [Line Items]"
       }
      }
     },
     "localname": "DebtInstrumentLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails",
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "auth_ref": [
      "r18",
      "r216",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r382",
      "r388",
      "r389",
      "r390",
      "r391",
      "r393",
      "r394",
      "r395",
      "r396",
      "r397",
      "r398",
      "r590",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r717"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities.",
        "label": "Debt Instrument, Name [Domain]",
        "terseLabel": "Debt Instrument, Name [Domain]"
       }
      }
     },
     "localname": "DebtInstrumentNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails",
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails",
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails",
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtInstrumentRedemptionPeriodAxis": {
     "auth_ref": [
      "r163"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information about timing of debt redemption features under terms of the debt agreement.",
        "label": "Debt Instrument, Redemption, Period [Axis]",
        "terseLabel": "Debt Instrument, Redemption, Period [Axis]"
       }
      }
     },
     "localname": "DebtInstrumentRedemptionPeriodAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentRedemptionPeriodDomain": {
     "auth_ref": [
      "r163"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period as defined under terms of the debt agreement for debt redemption features.",
        "label": "Debt Instrument, Redemption, Period [Domain]",
        "terseLabel": "Debt Instrument, Redemption, Period [Domain]"
       }
      }
     },
     "localname": "DebtInstrumentRedemptionPeriodDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtInstrumentRedemptionPeriodOneMember": {
     "auth_ref": [
      "r163"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period one representing most current period of debt redemption features under terms of the debt agreement.",
        "label": "Debt Instrument, Redemption, Period One [Member]",
        "terseLabel": "Debt Instrument, Redemption, Period One"
       }
      }
     },
     "localname": "DebtInstrumentRedemptionPeriodOneMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtInstrumentRedemptionPeriodThreeMember": {
     "auth_ref": [
      "r163"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period three representing third most current period of debt redemption features under terms of the debt agreement.",
        "label": "Debt Instrument, Redemption, Period Three [Member]",
        "terseLabel": "Debt Instrument, Redemption, Period Three"
       }
      }
     },
     "localname": "DebtInstrumentRedemptionPeriodThreeMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtInstrumentRedemptionPeriodTwoMember": {
     "auth_ref": [
      "r163"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period two representing second most current period of debt redemption features under terms of the debt agreement.",
        "label": "Debt Instrument, Redemption, Period Two [Member]",
        "terseLabel": "Debt Instrument, Redemption, Period Two"
       }
      }
     },
     "localname": "DebtInstrumentRedemptionPeriodTwoMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtInstrumentTable": {
     "auth_ref": [
      "r18",
      "r103",
      "r106",
      "r107",
      "r108",
      "r149",
      "r150",
      "r152",
      "r164",
      "r216",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r382",
      "r388",
      "r389",
      "r390",
      "r391",
      "r393",
      "r394",
      "r395",
      "r396",
      "r397",
      "r398",
      "r401",
      "r590",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r717"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A table or schedule providing information pertaining to long-term debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer.",
        "label": "Schedule of Long-Term Debt Instruments [Table]",
        "terseLabel": "Schedule of Long-term Debt Instruments [Table]"
       }
      }
     },
     "localname": "DebtInstrumentTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails",
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtWeightedAverageInterestRate": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average interest rate of debt outstanding.",
        "label": "Debt, Weighted Average Interest Rate",
        "terseLabel": "Weighted average interest rate"
       }
      }
     },
     "localname": "DebtWeightedAverageInterestRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r719",
      "r786",
      "r787"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction.",
        "label": "Deferred Federal Income Tax Expense (Benefit)",
        "terseLabel": "Federal"
       }
      }
     },
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredFinanceCostsGross": {
     "auth_ref": [
      "r151"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before accumulated amortization, of debt issuance costs. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs.",
        "label": "Debt Issuance Costs, Gross",
        "terseLabel": "Total debt issuance costs incurred and capitalized"
       }
      }
     },
     "localname": "DeferredFinanceCostsGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredFinanceCostsNet": {
     "auth_ref": [
      "r151",
      "r751"
     ],
     "calculation": {
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails_1": {
       "order": 2.0,
       "parentTag": "us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after accumulated amortization, of debt issuance costs. Includes, but is not limited to, legal, accounting, underwriting, printing, and registration costs.",
        "label": "Debt Issuance Costs, Net",
        "negatedLabel": "Debt issuance costs, net of amortization"
       }
      }
     },
     "localname": "DeferredFinanceCostsNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r121",
      "r719",
      "r786"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred Foreign Income Tax Expense (Benefit)",
        "terseLabel": "Foreign"
       }
      }
     },
     "localname": "DeferredForeignIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r44",
      "r121",
      "r517",
      "r528",
      "r529",
      "r719"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred Income Tax Expense (Benefit)",
        "totalLabel": "Total deferred income tax benefit"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilities": {
     "auth_ref": [
      "r3",
      "r4",
      "r156",
      "r166",
      "r512"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences.",
        "label": "Deferred Tax Liabilities, Gross",
        "negatedTotalLabel": "Total deferred tax liability"
       }
      }
     },
     "localname": "DeferredIncomeTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "auth_ref": [
      "r499",
      "r500"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting.",
        "label": "Deferred Income Tax Liabilities, Net",
        "terseLabel": "Deferred income tax liabilities, net"
       }
      }
     },
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxesAndTaxCredits": {
     "auth_ref": [
      "r45"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred income tax expense (benefit) and income tax credits.",
        "label": "Deferred Income Taxes and Tax Credits",
        "terseLabel": "Deferred income taxes"
       }
      }
     },
     "localname": "DeferredIncomeTaxesAndTaxCredits",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r719",
      "r786",
      "r787"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.",
        "label": "Deferred State and Local Income Tax Expense (Benefit)",
        "terseLabel": "State"
       }
      }
     },
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsGross": {
     "auth_ref": [
      "r513"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.",
        "label": "Deferred Tax Assets, Gross",
        "totalLabel": "Total deferred tax asset"
       }
      }
     },
     "localname": "DeferredTaxAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsInProcessResearchAndDevelopment": {
     "auth_ref": [
      "r119",
      "r784"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from in-process research and development costs expensed in connection with a business combination.",
        "label": "Deferred Tax Assets, in Process Research and Development",
        "terseLabel": "Capitalized Research and Development Costs"
       }
      }
     },
     "localname": "DeferredTaxAssetsInProcessResearchAndDevelopment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOther": {
     "auth_ref": [
      "r119",
      "r784"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other.",
        "label": "Deferred Tax Assets, Other",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "DeferredTaxAssetsOther",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwards": {
     "auth_ref": [
      "r118",
      "r119",
      "r784"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 7.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allocation of a valuation allowances, of deferred tax assets attributable to deductible tax credit carryforwards including, but not limited to, research, foreign, general business, alternative minimum tax, and other deductible tax credit carryforwards.",
        "label": "Deferred Tax Assets, Tax Credit Carryforwards",
        "terseLabel": "Tax carryforwards"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxCreditCarryforwards",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation": {
     "auth_ref": [
      "r119",
      "r784"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from employee compensation.",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Employee Compensation",
        "terseLabel": "Accrued compensation"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsEmployeeCompensation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts": {
     "auth_ref": [
      "r119",
      "r784"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_DeferredTaxAssetsGross",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary difference from allowance for credit loss on accounts receivable.",
        "label": "Deferred Tax Asset, Tax Deferred Expense, Reserve and Accrual, Accounts Receivable, Allowance for Credit Loss",
        "terseLabel": "Allowance for doubtful accounts"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilities": {
     "auth_ref": [
      "r115",
      "r783"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.",
        "label": "Deferred Tax Liabilities, Net",
        "negatedTotalLabel": "Net deferred tax liability",
        "terseLabel": "Deferred tax liabilities, net"
       }
      }
     },
     "localname": "DeferredTaxLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNarrativeDetails",
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesGoodwillAndIntangibleAssets": {
     "auth_ref": [
      "r119",
      "r784"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from intangible assets including goodwill.",
        "label": "Deferred Tax Liabilities, Goodwill and Intangible Assets",
        "negatedLabel": "Acquired intangibles"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesGoodwillAndIntangibleAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesOther": {
     "auth_ref": [
      "r119",
      "r784"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences classified as other.",
        "label": "Deferred Tax Liabilities, Other",
        "negatedLabel": "Other"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesOther",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": {
     "auth_ref": [
      "r119",
      "r784"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_DeferredIncomeTaxLiabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.",
        "label": "Deferred Tax Liabilities, Property, Plant and Equipment",
        "negatedLabel": "Depreciation and amortization"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNetDeferredIncomeTaxAssetLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedContributionPlanDisclosureLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Defined Contribution Plan Disclosure [Line Items]",
        "terseLabel": "Defined Contribution Plan Disclosure [Line Items]"
       }
      }
     },
     "localname": "DefinedContributionPlanDisclosureLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DefinedContributionPlanEmployerDiscretionaryContributionAmount": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of discretionary contributions made by an employer to a defined contribution plan.",
        "label": "Defined Contribution Plan, Employer Discretionary Contribution Amount",
        "terseLabel": "Defined contribution plan"
       }
      }
     },
     "localname": "DefinedContributionPlanEmployerDiscretionaryContributionAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage employer matches of the employee's percentage contribution matched.",
        "label": "Defined Contribution Plan, Employer Matching Contribution, Percent of Match",
        "terseLabel": "Employer matching contribution, percent of match"
       }
      }
     },
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercentOfMatch",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Maximum percentage of employee gross pay the employee may contribute to a defined contribution plan.",
        "label": "Defined Contribution Plan, Maximum Annual Contributions Per Employee, Percent",
        "terseLabel": "Maximum annual contributions per employee"
       }
      }
     },
     "localname": "DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DefinedContributionPlanTable": {
     "auth_ref": [
      "r451"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about defined contribution pension plans or defined contribution other postretirement plans, separately for pension plans and other postretirement benefit plans.",
        "label": "Defined Contribution Plan [Table]",
        "terseLabel": "Defined Contribution Plan [Table]"
       }
      }
     },
     "localname": "DefinedContributionPlanTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_Depreciation": {
     "auth_ref": [
      "r44",
      "r90"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation.",
        "label": "Depreciation",
        "terseLabel": "Depreciation expense"
       }
      }
     },
     "localname": "Depreciation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DepreciationAndAmortization": {
     "auth_ref": [
      "r44",
      "r90"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 4.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The current period expense charged against earnings on long-lived, physical assets not used in production, and which are not intended for resale, to allocate or recognize the cost of such assets over their useful lives; or to record the reduction in book value of an intangible asset over the benefit period of such asset; or to reflect consumption during the period of an asset that is not used in production.",
        "label": "Depreciation, Depletion and Amortization, Nonproduction",
        "terseLabel": "Depreciation and amortization"
       }
      }
     },
     "localname": "DepreciationAndAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DirectOperatingCosts": {
     "auth_ref": [
      "r28"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 1.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate direct operating costs incurred during the reporting period.",
        "label": "Direct Operating Costs",
        "totalLabel": "Total direct costs"
       }
      }
     },
     "localname": "DirectOperatingCosts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DirectOperatingCostsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Direct Operating Costs [Abstract]",
        "terseLabel": "Direct costs:"
       }
      }
     },
     "localname": "DirectOperatingCostsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "auth_ref": [
      "r458",
      "r486",
      "r487",
      "r489",
      "r493",
      "r693"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for share-based payment arrangement.",
        "label": "Share-Based Payment Arrangement [Text Block]",
        "terseLabel": "Stock-Based Compensation"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Share-Based Payment Arrangement [Abstract]",
        "terseLabel": "Share-based Payment Arrangement [Abstract]"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Earnings Per Share [Abstract]",
        "terseLabel": "Earnings per share:"
       }
      }
     },
     "localname": "EarningsPerShareAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasic": {
     "auth_ref": [
      "r203",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r239",
      "r242",
      "r260",
      "r261",
      "r262",
      "r266",
      "r561",
      "r562",
      "r637",
      "r639",
      "r674"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of net income (loss) for the period per each share of common stock or unit outstanding during the reporting period.",
        "label": "Earnings Per Share, Basic",
        "verboseLabel": "Basic (in dollars per Share)"
       }
      }
     },
     "localname": "EarningsPerShareBasic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareDiluted": {
     "auth_ref": [
      "r203",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r242",
      "r260",
      "r261",
      "r262",
      "r266",
      "r561",
      "r562",
      "r637",
      "r639",
      "r674"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.",
        "label": "Earnings Per Share, Diluted",
        "verboseLabel": "Diluted (in dollars per Share)"
       }
      }
     },
     "localname": "EarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "auth_ref": [
      "r263",
      "r264",
      "r265",
      "r267"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for earnings per share.",
        "label": "Earnings Per Share [Text Block]",
        "terseLabel": "Earnings per Share"
       }
      }
     },
     "localname": "EarningsPerShareTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EarningsperShare"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "auth_ref": [
      "r502"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Effective Income Tax Rate Reconciliation, Percent",
        "terseLabel": "Effective income tax rate percent"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNarrativeDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized": {
     "auth_ref": [
      "r488"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cost not yet recognized for nonvested award under share-based payment arrangement.",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Amount",
        "terseLabel": "Weighted average vesting period"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "auth_ref": [
      "r488"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition",
        "terseLabel": "Cost not yet recognized, term"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": {
     "auth_ref": [
      "r485"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of tax benefit for recognition of expense of award under share-based payment arrangement.",
        "label": "Share-Based Payment Arrangement, Expense, Tax Benefit",
        "terseLabel": "Stock-based compensation expense"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Equity [Abstract]",
        "terseLabel": "Equity [Abstract]"
       }
      }
     },
     "localname": "EquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EquityComponentDomain": {
     "auth_ref": [
      "r102",
      "r177",
      "r199",
      "r200",
      "r201",
      "r217",
      "r218",
      "r219",
      "r224",
      "r233",
      "r235",
      "r268",
      "r320",
      "r421",
      "r490",
      "r491",
      "r492",
      "r521",
      "r522",
      "r560",
      "r579",
      "r580",
      "r581",
      "r582",
      "r583",
      "r584",
      "r619",
      "r644",
      "r645",
      "r646"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Components of equity are the parts of the total Equity balance including that which is allocated to common, preferred, treasury stock, retained earnings, etc.",
        "label": "Equity Component [Domain]",
        "terseLabel": "Equity Component [Domain]"
       }
      }
     },
     "localname": "EquityComponentDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_EquitySecuritiesByIndustryAxis": {
     "auth_ref": [
      "r677"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by industry sector, examples include but are not limited to, commercial, industrial, agricultural, financial services, technology, healthcare and real estate.",
        "label": "Industry Sector [Axis]",
        "terseLabel": "Industry Sector [Axis]"
       }
      }
     },
     "localname": "EquitySecuritiesByIndustryAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_EquitySecuritiesIndustryMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Industry sector consisting of government, private and corporate entities engaged in business activities, including but not limited to, commercial, industrial, agricultural, financial services, technology, healthcare and real estate.",
        "label": "Industry Sector [Domain]",
        "terseLabel": "Industry Sector [Domain]"
       }
      }
     },
     "localname": "EquitySecuritiesIndustryMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueMeasurementPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for fair value measurements of financial and non-financial assets, liabilities and instruments classified in shareholders' equity. Disclosures include, but are not limited to, how an entity that manages a group of financial assets and liabilities on the basis of its net exposure measures the fair value of those assets and liabilities.",
        "label": "Fair Value Measurement, Policy [Policy Text Block]",
        "terseLabel": "Fair Value of Financial Instruments and Fair Value of Acquisitions"
       }
      }
     },
     "localname": "FairValueMeasurementPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FinanceLeaseInterestExpense": {
     "auth_ref": [
      "r600",
      "r603",
      "r696"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofLeaseCostDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of interest expense on finance lease liability.",
        "label": "Finance Lease, Interest Expense",
        "terseLabel": "Interest on lease liabilities"
       }
      }
     },
     "localname": "FinanceLeaseInterestExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofLeaseCostDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilitiesPaymentsDueAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finance Lease, Liability, to be Paid [Abstract]",
        "terseLabel": "Finance Leases"
       }
      }
     },
     "localname": "FinanceLeaseLiabilitiesPaymentsDueAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FinanceLeaseLiability": {
     "auth_ref": [
      "r598",
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails_1": {
       "order": 2.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      },
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails_1": {
       "order": 3.0,
       "parentTag": "us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease.",
        "label": "Finance Lease, Liability",
        "terseLabel": "Finance leases",
        "verboseLabel": "Present value of lease liabilities"
       }
      }
     },
     "localname": "FinanceLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails",
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityCurrent": {
     "auth_ref": [
      "r598"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails": {
       "order": 2.0,
       "parentTag": "nvee_OperatingAndFinanceLeasesLiability",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as current.",
        "label": "Finance Lease, Liability, Current",
        "negatedTerseLabel": "Finance"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList": {
     "auth_ref": [
      "r599"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates line item in statement of financial position that includes current finance lease liability.",
        "label": "Finance Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]",
        "terseLabel": "Finance Lease, Liability, Current, Statement of Financial Position [Extensible List]"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "enumerationSetItemType"
    },
    "us-gaap_FinanceLeaseLiabilityMaturityTableTextBlock": {
     "auth_ref": [
      "r797"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of undiscounted cash flows of finance lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to finance lease liability recognized in statement of financial position.",
        "label": "Finance Lease, Liability, Fiscal Year Maturity [Table Text Block]",
        "terseLabel": "Schedule of maturities of lease liabilities"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityMaturityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FinanceLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r598"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails": {
       "order": 4.0,
       "parentTag": "nvee_OperatingAndFinanceLeasesLiability",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from finance lease, classified as noncurrent.",
        "label": "Finance Lease, Liability, Noncurrent",
        "negatedTerseLabel": "Finance"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityNoncurrentStatementOfFinancialPositionExtensibleList": {
     "auth_ref": [
      "r599"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates line item in statement of financial position that includes noncurrent finance lease liability.",
        "label": "Finance Lease, Liability, Noncurrent, Statement of Financial Position [Extensible Enumeration]",
        "terseLabel": "Finance Lease, Liability, Noncurrent, Statement of Financial Position [Extensible List]"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityNoncurrentStatementOfFinancialPositionExtensibleList",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "enumerationSetItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDue": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails_1": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payments for finance lease.",
        "label": "Finance Lease, Liability, to be Paid",
        "totalLabel": "Total lease payments"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueAfterYearFive": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finance Lease, Liability, to be Paid, after Year Five",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDueAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finance Lease, Liability, to be Paid, Year One",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDueNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueYearFive": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finance Lease, Liability, to be Paid, Year Five",
        "terseLabel": "2027"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDueYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finance Lease, Liability, to be Paid, Year Four",
        "terseLabel": "2026"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDueYearFour",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueYearThree": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finance Lease, Liability, to be Paid, Year Three",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDueYearThree",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityPaymentsDueYearTwo": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for finance lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finance Lease, Liability, to be Paid, Year Two",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityPaymentsDueYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseLiabilityUndiscountedExcessAmount": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails_1": {
       "order": 1.0,
       "parentTag": "us-gaap_FinanceLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for finance lease.",
        "label": "Finance Lease, Liability, Undiscounted Excess Amount",
        "negatedTerseLabel": "Less: Interest"
       }
      }
     },
     "localname": "FinanceLeaseLiabilityUndiscountedExcessAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeasePrincipalPayments": {
     "auth_ref": [
      "r601",
      "r606"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow for principal payment on finance lease.",
        "label": "Finance Lease, Principal Payments",
        "terseLabel": "Financing cash flows from finance leases"
       }
      }
     },
     "localname": "FinanceLeasePrincipalPayments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalCashFlowInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseRightOfUseAsset": {
     "auth_ref": [
      "r597"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails": {
       "order": 2.0,
       "parentTag": "nvee_OperatingAndFinanceLeasesRightOfUseAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after accumulated amortization, of right-of-use asset from finance lease.",
        "label": "Finance Lease, Right-of-Use Asset, after Accumulated Amortization",
        "terseLabel": "Finance lease assets"
       }
      }
     },
     "localname": "FinanceLeaseRightOfUseAsset",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseRightOfUseAssetAccumulatedAmortization": {
     "auth_ref": [
      "r793",
      "r795"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated amortization of right-of-use asset from finance lease.",
        "label": "Finance Lease, Right-of-Use Asset, Accumulated Amortization",
        "terseLabel": "Financing right of-use lease assets"
       }
      }
     },
     "localname": "FinanceLeaseRightOfUseAssetAccumulatedAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseRightOfUseAssetAmortization": {
     "auth_ref": [
      "r600",
      "r603",
      "r696"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofLeaseCostDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization expense attributable to right-of-use asset from finance lease.",
        "label": "Finance Lease, Right-of-Use Asset, Amortization",
        "terseLabel": "Amortization of financing lease assets"
       }
      }
     },
     "localname": "FinanceLeaseRightOfUseAssetAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofLeaseCostDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList": {
     "auth_ref": [
      "r599"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates line item in statement of financial position that includes finance lease right-of-use asset.",
        "label": "Finance Lease, Right-of-Use Asset, Statement of Financial Position [Extensible Enumeration]",
        "terseLabel": "Finance Lease, Right-of-Use Asset, Statement of Financial Position [Extensible List]"
       }
      }
     },
     "localname": "FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "enumerationSetItemType"
    },
    "us-gaap_FinanceLeaseWeightedAverageDiscountRatePercent": {
     "auth_ref": [
      "r609",
      "r696"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average discount rate for finance lease calculated at point in time.",
        "label": "Finance Lease, Weighted Average Discount Rate, Percent",
        "terseLabel": "Finance leases"
       }
      }
     },
     "localname": "FinanceLeaseWeightedAverageDiscountRatePercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofLeaseTermandDiscountRateDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_FinanceLeaseWeightedAverageRemainingLeaseTerm1": {
     "auth_ref": [
      "r608",
      "r696"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining lease term for finance lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Finance Lease, Weighted Average Remaining Lease Term",
        "terseLabel": "Finance leases"
       }
      }
     },
     "localname": "FinanceLeaseWeightedAverageRemainingLeaseTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofLeaseTermandDiscountRateDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Finite-Lived Intangible Asset, Useful Life",
        "verboseLabel": "Useful life"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization": {
     "auth_ref": [
      "r187",
      "r344"
     ],
     "calculation": {
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "negatedLabel": "Accumulated Amortization"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAccumulatedAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for asset, excluding financial asset and goodwill, lacking physical substance with finite life expected to be recognized after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, after Year Five",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths": {
     "auth_ref": [
      "r86"
     ],
     "calculation": {
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "auth_ref": [
      "r86"
     ],
     "calculation": {
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Five",
        "terseLabel": "2027"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "auth_ref": [
      "r86"
     ],
     "calculation": {
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four",
        "terseLabel": "2026"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "auth_ref": [
      "r86"
     ],
     "calculation": {
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "auth_ref": [
      "r86"
     ],
     "calculation": {
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of amortization for assets, excluding financial assets and goodwill, lacking physical substance with finite life expected to be recognized in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "auth_ref": [
      "r342",
      "r343",
      "r344",
      "r345",
      "r628",
      "r635"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by major type or class of finite-lived intangible assets.",
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "terseLabel": "Finite-Lived Intangible Assets by Major Class [Axis]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsWeightedAverageUsefulLivesofIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "auth_ref": [
      "r84",
      "r635"
     ],
     "calculation": {
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Gross",
        "terseLabel": "Gross Carrying Amount"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Finite-Lived Intangible Assets [Line Items]",
        "terseLabel": "Finite-Lived Intangible Assets [Line Items]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsWeightedAverageUsefulLivesofIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "auth_ref": [
      "r79",
      "r83"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The major class of finite-lived intangible asset (for example, patents, trademarks, copyrights, etc.) A major class is composed of intangible assets that can be grouped together because they are similar, either by their nature or by their use in the operations of a company.",
        "label": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "terseLabel": "Finite-Lived Intangible Assets, Major Class Name [Domain]"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsWeightedAverageUsefulLivesofIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "auth_ref": [
      "r84",
      "r628"
     ],
     "calculation": {
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Finite-Lived Intangible Assets, Net",
        "totalLabel": "Net Amount"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFutureEstimatedAggregateAmortizationRelatedtoFinitelivedIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_FiniteLivedIntangibleAssetsNetAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Finite-Lived Intangible Assets, Net [Abstract]",
        "terseLabel": "Finite-lived intangible assets:"
       }
      }
     },
     "localname": "FiniteLivedIntangibleAssetsNetAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FiscalPeriod": {
     "auth_ref": [
      "r144"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for determining an entity's fiscal year or other fiscal period. This disclosure may include identification of the fiscal period end-date, the length of the fiscal period, any reporting period lag between the entity and its subsidiaries, or equity investees. If a reporting lag exists, the closing date of the entity having a different period end is generally noted, along with an explanation of the necessity for using different closing dates. Any intervening events that materially affect the entity's financial position or results of operations are generally also disclosed.",
        "label": "Fiscal Period, Policy [Policy Text Block]",
        "terseLabel": "Fiscal Year"
       }
      }
     },
     "localname": "FiscalPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_FixedPriceContractMember": {
     "auth_ref": [
      "r687"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contract with customer in which amount of consideration is fixed.",
        "label": "Fixed-Price Contract [Member]",
        "terseLabel": "Fixed-unit price contracts"
       }
      }
     },
     "localname": "FixedPriceContractMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FurnitureAndFixturesMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equipment commonly used in offices and stores that have no permanent connection to the structure of a building or utilities. Examples include, but are not limited to, desks, chairs, tables, and bookcases.",
        "label": "Furniture and Fixtures [Member]",
        "terseLabel": "Office furniture and equipment"
       }
      }
     },
     "localname": "FurnitureAndFixturesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_GainLossOnDispositionOfAssets1": {
     "auth_ref": [
      "r715"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee.",
        "label": "Gain (Loss) on Disposition of Assets",
        "negatedLabel": "Gain on disposals of property and equipment"
       }
      }
     },
     "localname": "GainLossOnDispositionOfAssets1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GeneralAndAdministrativeExpense": {
     "auth_ref": [
      "r30"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 2.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate total of expenses of managing and administering the affairs of an entity, including affiliates of the reporting entity, which are not directly or indirectly associated with the manufacture, sale or creation of a product or product line.",
        "label": "General and Administrative Expense",
        "terseLabel": "General and administrative"
       }
      }
     },
     "localname": "GeneralAndAdministrativeExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GeographicConcentrationRiskMember": {
     "auth_ref": [
      "r58",
      "r656"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Reflects the percentage that a specified dollar value on the balance sheet or income statement in the period from one or more specified geographic areas is to a corresponding consolidated, segment, or product line amount. Risk is the materially adverse effects of economic decline or antagonistic political actions resulting in loss of assets, sales volume, labor supply, or source of materials and supplies in a US state or a specified country, continent, or region such as EMEA (Europe, Middle East, Africa).",
        "label": "Geographic Concentration Risk [Member]",
        "terseLabel": "Geographic concentration risk"
       }
      }
     },
     "localname": "GeographicConcentrationRiskMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_Goodwill": {
     "auth_ref": [
      "r186",
      "r330",
      "r636",
      "r678",
      "r697",
      "r731",
      "r738"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Goodwill",
        "periodEndLabel": "Ending balance",
        "periodStartLabel": "Beginning balance",
        "terseLabel": "Goodwill"
       }
      }
     },
     "localname": "Goodwill",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofGoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAcquiredDuringPeriod": {
     "auth_ref": [
      "r332",
      "r678"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized resulting from a business combination.",
        "label": "Goodwill, Acquired During Period",
        "terseLabel": "Acquisitions"
       }
      }
     },
     "localname": "GoodwillAcquiredDuringPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsNarrativeDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofGoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Goodwill and Intangible Assets Disclosure [Abstract]",
        "terseLabel": "Goodwill and Intangible Assets Disclosure [Abstract]"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureTextBlock": {
     "auth_ref": [
      "r87"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for goodwill and intangible assets.",
        "label": "Goodwill and Intangible Assets Disclosure [Text Block]",
        "terseLabel": "Goodwill and Intangible Assets"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssets"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock": {
     "auth_ref": [
      "r76",
      "r81"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and intangible assets.",
        "label": "Goodwill and Intangible Assets, Policy [Policy Text Block]",
        "terseLabel": "Goodwill and Intangible Assets"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Goodwill [Line Items]",
        "terseLabel": "Goodwill [Line Items]"
       }
      }
     },
     "localname": "GoodwillLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsNarrativeDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofGoodwillDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_GoodwillPurchaseAccountingAdjustments": {
     "auth_ref": [
      "r122",
      "r737"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) from adjustments after acquisition date under purchase accounting of an asset representing the future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Goodwill, Purchase Accounting Adjustments",
        "netLabel": "Goodwill, purchase adjustments",
        "terseLabel": "Adjustments"
       }
      }
     },
     "localname": "GoodwillPurchaseAccountingAdjustments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsNarrativeDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofGoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Goodwill [Roll Forward]",
        "terseLabel": "Goodwill [Roll Forward]"
       }
      }
     },
     "localname": "GoodwillRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofGoodwillDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_GovernmentContractsConcentrationRiskMember": {
     "auth_ref": [
      "r57"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. Risk is the materially adverse effects of termination of a significant contract or group of contracts or from future loss of a significant portion of business with a specified political body or unit thereof, such as Department of Defense, US Navy, New York City.",
        "label": "Government Contracts Concentration Risk [Member]",
        "terseLabel": "Government contracts concentration risk"
       }
      }
     },
     "localname": "GovernmentContractsConcentrationRiskMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_GrossProfit": {
     "auth_ref": [
      "r27",
      "r213",
      "r287",
      "r292",
      "r298",
      "r301",
      "r316",
      "r363",
      "r364",
      "r366",
      "r367",
      "r368",
      "r370",
      "r372",
      "r374",
      "r375",
      "r567",
      "r676",
      "r748"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeInterestExpenseInterestIncomeIncomeTaxesExtraordinaryItemsNoncontrollingInterestsNet",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity.",
        "label": "Gross Profit",
        "totalLabel": "Gross profit"
       }
      }
     },
     "localname": "GrossProfit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ImpairedAssetsToBeDisposedOfByMethodOtherThanSaleLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Impaired Assets to be Disposed of by Method Other than Sale [Line Items]",
        "terseLabel": "Impaired Assets to be Disposed of by Method Other than Sale [Line Items]"
       }
      }
     },
     "localname": "ImpairedAssetsToBeDisposedOfByMethodOtherThanSaleLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ImpairedAssetsToBeDisposedOfByMethodOtherThanSaleTable": {
     "auth_ref": [
      "r88",
      "r94"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "When an entity determines it will dispose of a long-lived asset by a method other than sale (for example, by abandonment, distribution in a spin-off), impairment of such assets is separately disclosed from those assets held and used.",
        "label": "Impaired Assets to be Disposed of by Method Other than Sale [Table]",
        "terseLabel": "Impaired Assets to be Disposed of by Method Other than Sale [Table]"
       }
      }
     },
     "localname": "ImpairedAssetsToBeDisposedOfByMethodOtherThanSaleTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ImpairmentOfLongLivedAssetsHeldForUse": {
     "auth_ref": [
      "r44",
      "r89",
      "r93"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The aggregate amount of write-downs for impairments recognized during the period for long lived assets held for use (including those held for disposal by means other than sale).",
        "label": "Impairment, Long-Lived Asset, Held-for-Use",
        "terseLabel": "Impairment, long-lived asset"
       }
      }
     },
     "localname": "ImpairmentOfLongLivedAssetsHeldForUse",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "auth_ref": [
      "r24",
      "r153",
      "r160",
      "r174",
      "r287",
      "r292",
      "r298",
      "r301",
      "r638",
      "r676"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 1.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest.",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "totalLabel": "Income before income tax expense",
        "verboseLabel": "Segment income before taxes"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME",
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeInterestExpenseInterestIncomeIncomeTaxesExtraordinaryItemsNoncontrollingInterestsNet": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of income (loss) from continuing operations, nonoperating income (expense) and income (loss) from equity method investments, before deduction of income tax expense (benefit) and income (loss) attributable to noncontrolling interest, and addition of interest income (expense).",
        "label": "Income (Loss) from Continuing Operations before Interest Expense, Interest Income, Income Taxes, Noncontrolling Interests, Net",
        "totalLabel": "Income from operations"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeInterestExpenseInterestIncomeIncomeTaxesExtraordinaryItemsNoncontrollingInterestsNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeStatementAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Statement [Abstract]",
        "terseLabel": "Income Statement [Abstract]"
       }
      }
     },
     "localname": "IncomeStatementAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "auth_ref": [
      "r346",
      "r348"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by location in the income statement.",
        "label": "Income Statement Location [Axis]",
        "terseLabel": "Income Statement Location [Axis]"
       }
      }
     },
     "localname": "IncomeStatementLocationAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "auth_ref": [
      "r348"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Location in the income statement.",
        "label": "Income Statement Location [Domain]",
        "terseLabel": "Income Statement Location [Domain]"
       }
      }
     },
     "localname": "IncomeStatementLocationDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Income Tax Disclosure [Abstract]",
        "terseLabel": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "localname": "IncomeTaxDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "auth_ref": [
      "r214",
      "r503",
      "r510",
      "r515",
      "r526",
      "r530",
      "r532",
      "r533",
      "r534"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for income taxes. Disclosures may include net deferred tax liability or asset recognized in an enterprise's statement of financial position, net change during the year in the total valuation allowance, approximate tax effect of each type of temporary difference and carryforward that gives rise to a significant portion of deferred tax liabilities and deferred tax assets, utilization of a tax carryback, and tax uncertainties information.",
        "label": "Income Tax Disclosure [Text Block]",
        "terseLabel": "Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxes"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r215",
      "r234",
      "r235",
      "r285",
      "r501",
      "r527",
      "r531",
      "r640"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 2.0,
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0
      },
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.",
        "label": "Income Tax Expense (Benefit)",
        "negatedLabel": "Income tax expense",
        "totalLabel": "Total income tax expense"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME",
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitDetails",
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "auth_ref": [
      "r198",
      "r497",
      "r498",
      "r510",
      "r511",
      "r514",
      "r518"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements.",
        "label": "Income Tax, Policy [Policy Text Block]",
        "terseLabel": "Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r502"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of income tax expense or benefit for the period computed by applying the domestic federal statutory tax rates to pretax income from continuing operations.",
        "label": "Effective Income Tax Rate Reconciliation at Federal Statutory Income Tax Rate, Amount",
        "terseLabel": "Tax at federal statutory rate"
       }
      }
     },
     "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationOtherAdjustments": {
     "auth_ref": [
      "r781"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails": {
       "order": 6.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.",
        "label": "Effective Income Tax Rate Reconciliation, Other Adjustments, Amount",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "IncomeTaxReconciliationOtherAdjustments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes": {
     "auth_ref": [
      "r781"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax expense (benefit).",
        "label": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Amount",
        "terseLabel": "State taxes, net of Federal benefit"
       }
      }
     },
     "localname": "IncomeTaxReconciliationStateAndLocalIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationTaxCredits": {
     "auth_ref": [
      "r781"
     ],
     "calculation": {
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax credits. Including, but not limited to, research credit, foreign tax credit, investment tax credit, and other tax credits.",
        "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Amount",
        "negatedLabel": "Federal and state tax credits"
       }
      }
     },
     "localname": "IncomeTaxReconciliationTaxCredits",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesIncomeTaxExpenseBenefitReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxesPaid": {
     "auth_ref": [
      "r41",
      "r48"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of cash paid during the current period to foreign, federal, state, and local authorities as taxes on income.",
        "label": "Income Taxes Paid",
        "terseLabel": "Cash paid for income taxes"
       }
      }
     },
     "localname": "IncomeTaxesPaid",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "auth_ref": [
      "r43"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 14.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business.",
        "label": "Increase (Decrease) in Accounts Payable",
        "verboseLabel": "Accounts payable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsPayable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "auth_ref": [
      "r43"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 10.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services.",
        "label": "Increase (Decrease) in Accounts Receivable",
        "negatedLabel": "Billed receivables"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": {
     "auth_ref": [
      "r626",
      "r714"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.",
        "label": "Increase (Decrease) in Contract with Customer, Liability",
        "verboseLabel": "Billings in excess of costs and estimated earnings on uncompleted contracts"
       }
      }
     },
     "localname": "IncreaseDecreaseInContractWithCustomerLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Increase (Decrease) in Operating Capital [Abstract]",
        "terseLabel": "Changes in operating assets and liabilities, net of impact of acquisitions:"
       }
      }
     },
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncreaseDecreaseInOtherCurrentLiabilities": {
     "auth_ref": [
      "r714"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 16.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in current liabilities classified as other.",
        "label": "Increase (Decrease) in Other Current Liabilities",
        "terseLabel": "Other current liabilities"
       }
      }
     },
     "localname": "IncreaseDecreaseInOtherCurrentLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "auth_ref": [
      "r43"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 9.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.",
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "negatedLabel": "Prepaid expenses and other assets"
       }
      }
     },
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "terseLabel": "Increase (Decrease) in Stockholders' Equity [Roll Forward]"
       }
      }
     },
     "localname": "IncreaseDecreaseInStockholdersEquityRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncrementalCommonSharesAttributableToContingentlyIssuableShares": {
     "auth_ref": [
      "r244",
      "r245",
      "r251",
      "r252",
      "r253",
      "r254",
      "r255",
      "r256",
      "r257",
      "r262"
     ],
     "calculation": {
      "http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of contingently issuable shares. Contingently issuable shares are those shares that are issuable for little or no cash contingent on certain conditions being met.",
        "label": "Incremental Common Shares Attributable to Dilutive Effect of Contingently Issuable Shares",
        "terseLabel": "Effect of issuable shares related to acquisitions (in shares)"
       }
      }
     },
     "localname": "IncrementalCommonSharesAttributableToContingentlyIssuableShares",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_IncrementalCommonSharesAttributableToShareBasedPaymentArrangements": {
     "auth_ref": [
      "r243",
      "r244",
      "r246",
      "r262",
      "r457"
     ],
     "calculation": {
      "http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additional shares included in the calculation of diluted EPS as a result of the potentially dilutive effect of share based payment arrangements using the treasury stock method.",
        "label": "Incremental Common Shares Attributable to Dilutive Effect of Share-Based Payment Arrangements",
        "terseLabel": "Effect of dilutive non-vested restricted shares and units (in shares)"
       }
      }
     },
     "localname": "IncrementalCommonSharesAttributableToShareBasedPaymentArrangements",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "auth_ref": [
      "r77",
      "r82"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges.",
        "label": "Intangible Assets, Net (Excluding Goodwill)",
        "terseLabel": "Intangible assets, net"
       }
      }
     },
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestExpense": {
     "auth_ref": [
      "r151",
      "r162",
      "r202",
      "r281",
      "r588"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of the cost of borrowed funds accounted for as interest expense.",
        "label": "Interest Expense",
        "negatedLabel": "Interest expense"
       }
      }
     },
     "localname": "InterestExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestPaidNet": {
     "auth_ref": [
      "r206",
      "r208",
      "r209"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash paid for interest, excluding capitalized interest, classified as operating activity. Includes, but is not limited to, payment to settle zero-coupon bond for accreted interest of debt discount and debt instrument with insignificant coupon interest rate in relation to effective interest rate of borrowing attributable to accreted interest of debt discount.",
        "label": "Interest Paid, Excluding Capitalized Interest, Operating Activities",
        "terseLabel": "Cash paid for interest"
       }
      }
     },
     "localname": "InterestPaidNet",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeaseCost": {
     "auth_ref": [
      "r610",
      "r696"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofLeaseCostDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lease cost recognized by lessee for lease contract.",
        "label": "Lease, Cost",
        "totalLabel": "Total lease cost"
       }
      }
     },
     "localname": "LeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofLeaseCostDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeaseCostTableTextBlock": {
     "auth_ref": [
      "r796"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of lessee's lease cost. Includes, but is not limited to, interest expense for finance lease, amortization of right-of-use asset for finance lease, operating lease cost, short-term lease cost, variable lease cost and sublease income.",
        "label": "Lease, Cost [Table Text Block]",
        "terseLabel": "Schedule of lease cost"
       }
      }
     },
     "localname": "LeaseCostTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "auth_ref": [
      "r91"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Additions or improvements to assets held under a lease arrangement.",
        "label": "Leasehold Improvements [Member]",
        "terseLabel": "Leasehold improvements"
       }
      }
     },
     "localname": "LeaseholdImprovementsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LeasesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Leases [Abstract]",
        "terseLabel": "Leases [Abstract]"
       }
      }
     },
     "localname": "LeasesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_LesseeFinanceLeasesTextBlock": {
     "auth_ref": [
      "r612"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for finance leases of lessee. Includes, but is not limited to, description of lessee's finance lease and maturity analysis of finance lease liability.",
        "label": "Lessee, Finance Leases [Text Block]",
        "terseLabel": "Leases"
       }
      }
     },
     "localname": "LesseeFinanceLeasesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/Leases"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "auth_ref": [
      "r797"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position.",
        "label": "Lessee, Operating Lease, Liability, Maturity [Table Text Block]",
        "terseLabel": "Schedule of maturities of lease liabilities"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails_1": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease.",
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "totalLabel": "Total lease payments"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails_1": {
       "order": 6.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, after Year Five",
        "terseLabel": "Thereafter"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails_1": {
       "order": 1.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year One",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails_1": {
       "order": 5.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Five",
        "terseLabel": "2027"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails_1": {
       "order": 4.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "terseLabel": "2026"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails_1": {
       "order": 3.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails_1": {
       "order": 2.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeaseLiabilityUndiscountedExcessAmount": {
     "auth_ref": [
      "r611"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's undiscounted obligation for lease payments in excess of discounted obligation for lease payments for operating lease.",
        "label": "Lessee, Operating Lease, Liability, Undiscounted Excess Amount",
        "negatedTerseLabel": "Less: Interest"
       }
      }
     },
     "localname": "LesseeOperatingLeaseLiabilityUndiscountedExcessAmount",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "auth_ref": [
      "r612"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability.",
        "label": "Lessee, Operating Leases [Text Block]",
        "terseLabel": "Leases"
       }
      }
     },
     "localname": "LesseeOperatingLeasesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/Leases"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_Liabilities": {
     "auth_ref": [
      "r15",
      "r213",
      "r316",
      "r363",
      "r364",
      "r366",
      "r367",
      "r368",
      "r370",
      "r372",
      "r374",
      "r375",
      "r547",
      "r548",
      "r549",
      "r567",
      "r675",
      "r748",
      "r798",
      "r799"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sum of the carrying amounts as of the balance sheet date of all liabilities that are recognized. Liabilities are probable future sacrifices of economic benefits arising from present obligations of an entity to transfer assets or provide services to other entities in the future.",
        "label": "Liabilities",
        "totalLabel": "Total liabilities"
       }
      }
     },
     "localname": "Liabilities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities [Abstract]",
        "terseLabel": "Liabilities"
       }
      }
     },
     "localname": "LiabilitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "auth_ref": [
      "r11",
      "r158",
      "r171",
      "r697",
      "r718",
      "r729",
      "r791"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any.",
        "label": "Liabilities and Equity",
        "totalLabel": "Total liabilities and stockholders\u2019 equity"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities and Equity [Abstract]",
        "terseLabel": "Liabilities and Stockholders\u2019 Equity"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesCurrent": {
     "auth_ref": [
      "r17",
      "r184",
      "r213",
      "r316",
      "r363",
      "r364",
      "r366",
      "r367",
      "r368",
      "r370",
      "r372",
      "r374",
      "r375",
      "r547",
      "r548",
      "r549",
      "r567",
      "r697",
      "r748",
      "r798",
      "r799"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer.",
        "label": "Liabilities, Current",
        "totalLabel": "Total current liabilities"
       }
      }
     },
     "localname": "LiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities, Current [Abstract]",
        "terseLabel": "Current liabilities:",
        "verboseLabel": "Current"
       }
      }
     },
     "localname": "LiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesNoncurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Liabilities, Noncurrent [Abstract]",
        "terseLabel": "Noncurrent"
       }
      }
     },
     "localname": "LiabilitiesNoncurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LineOfCredit": {
     "auth_ref": [
      "r2",
      "r157",
      "r167"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The carrying value as of the balance sheet date of the current and noncurrent portions of long-term obligations drawn from a line of credit, which is a bank's commitment to make loans up to a specific amount. Examples of items that might be included in the application of this element may consist of letters of credit, standby letters of credit, and revolving credit arrangements, under which borrowings can be made up to a maximum amount as of any point in time conditional on satisfaction of specified terms before, as of and after the date of drawdowns on the line. Includes short-term obligations that would normally be classified as current liabilities but for which (a) postbalance sheet date issuance of a long term obligation to refinance the short term obligation on a long term basis, or (b) the enterprise has entered into a financing agreement that clearly permits the enterprise to refinance the short-term obligation on a long term basis and the following conditions are met (1) the agreement does not expire within 1 year and is not cancelable by the lender except for violation of an objectively determinable provision, (2) no violation exists at the BS date, and (3) the lender has entered into the financing agreement is expected to be financially capable of honoring the agreement.",
        "label": "Long-Term Line of Credit",
        "terseLabel": "Outstanding balance"
       }
      }
     },
     "localname": "LineOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditFacilityInterestRateDuringPeriod": {
     "auth_ref": [
      "r14"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The effective interest rate during the reporting period.",
        "label": "Line of Credit Facility, Interest Rate During Period",
        "terseLabel": "Interest rate during period"
       }
      }
     },
     "localname": "LineOfCreditFacilityInterestRateDuringPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "auth_ref": [
      "r14"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.",
        "label": "Line of Credit Facility, Maximum Borrowing Capacity",
        "terseLabel": "Maximum borrowing capacity"
       }
      }
     },
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LineOfCreditMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A contractual arrangement with a lender under which borrowings can be made up to a specific amount at any point in time, and under which borrowings outstanding may be either short-term or long-term, depending upon the particulars.",
        "label": "Line of Credit [Member]",
        "terseLabel": "Line of Credit"
       }
      }
     },
     "localname": "LineOfCreditMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock": {
     "auth_ref": [
      "r728"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for claims held for amounts due a entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses.",
        "label": "Loans, Notes, Trade and Other Receivables Disclosure [Text Block]",
        "terseLabel": "Billed and Unbilled Receivables"
       }
      }
     },
     "localname": "LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BilledandUnbilledReceivables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LongTermDebt": {
     "auth_ref": [
      "r2",
      "r157",
      "r169",
      "r389",
      "r404",
      "r680",
      "r681"
     ],
     "calculation": {
      "http://www.nv5.com/role/NotesPayableandOtherObligationsFutureContractualMaturitiesofLongtermDebtDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, excluding unamortized premium (discount) and debt issuance cost, of long-term debt. Excludes lease obligation.",
        "label": "Long-Term Debt",
        "totalLabel": "Total"
       }
      }
     },
     "localname": "LongTermDebt",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsFutureContractualMaturitiesofLongtermDebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtAndCapitalLeaseObligations": {
     "auth_ref": [
      "r2"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      },
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt and lease obligation, classified as noncurrent.",
        "label": "Long-Term Debt and Lease Obligation",
        "terseLabel": "Notes payable and other obligations, less current portion",
        "verboseLabel": "Notes payable and other obligations, less current portion"
       }
      }
     },
     "localname": "LongTermDebtAndCapitalLeaseObligations",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtAndCapitalLeaseObligationsCurrent": {
     "auth_ref": [
      "r16"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      },
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt and lease obligation, classified as current.",
        "label": "Long-Term Debt and Lease Obligation, Current",
        "terseLabel": "Current portion of notes payable and other obligations",
        "verboseLabel": "Current portion of notes payable and other obligations"
       }
      }
     },
     "localname": "LongTermDebtAndCapitalLeaseObligationsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      },
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails_1": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt and lease obligation, including portion classified as current.",
        "label": "Long-Term Debt and Lease Obligation, Including Current Maturities",
        "totalLabel": "Total Notes Payable and Other Obligations"
       }
      }
     },
     "localname": "LongTermDebtAndCapitalLeaseObligationsIncludingCurrentMaturities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsSummaryofNotesPayableandOtherObligationsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths": {
     "auth_ref": [
      "r97",
      "r216",
      "r394"
     ],
     "calculation": {
      "http://www.nv5.com/role/NotesPayableandOtherObligationsFutureContractualMaturitiesofLongtermDebtDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_LongTermDebt",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Long-Term Debt, Maturity, Year One",
        "terseLabel": "2023"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsFutureContractualMaturitiesofLongtermDebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour": {
     "auth_ref": [
      "r97",
      "r216",
      "r394"
     ],
     "calculation": {
      "http://www.nv5.com/role/NotesPayableandOtherObligationsFutureContractualMaturitiesofLongtermDebtDetails": {
       "order": 3.0,
       "parentTag": "us-gaap_LongTermDebt",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Long-Term Debt, Maturity, Year Four",
        "terseLabel": "2026"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsFutureContractualMaturitiesofLongtermDebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree": {
     "auth_ref": [
      "r97",
      "r216",
      "r394"
     ],
     "calculation": {
      "http://www.nv5.com/role/NotesPayableandOtherObligationsFutureContractualMaturitiesofLongtermDebtDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_LongTermDebt",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Long-Term Debt, Maturity, Year Three",
        "terseLabel": "2025"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsFutureContractualMaturitiesofLongtermDebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo": {
     "auth_ref": [
      "r97",
      "r216",
      "r394"
     ],
     "calculation": {
      "http://www.nv5.com/role/NotesPayableandOtherObligationsFutureContractualMaturitiesofLongtermDebtDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_LongTermDebt",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirement, and other securities issued that are redeemable by holder at fixed or determinable price and date, maturing in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).",
        "label": "Long-Term Debt, Maturity, Year Two",
        "terseLabel": "2024"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsFutureContractualMaturitiesofLongtermDebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LossContingencyDisclosures": {
     "auth_ref": [
      "r353",
      "r354",
      "r356",
      "r358",
      "r359",
      "r360",
      "r361",
      "r362"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for loss and gain contingencies. Describes any existing condition, situation, or set of circumstances involving uncertainty as of the balance sheet date (or prior to issuance of the financial statements) as to a probable or reasonably possible loss incurred by an entity that will ultimately be resolved when one or more future events occur or fail to occur, and typically discloses the amount of loss recorded or a range of possible loss, or an assertion that no reasonable estimate can be made.",
        "label": "Contingencies Disclosure [Text Block]",
        "terseLabel": "Contingent Consideration"
       }
      }
     },
     "localname": "LossContingencyDisclosures",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ContingentConsideration"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "auth_ref": [
      "r207"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 1.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.",
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "totalLabel": "Net cash used in financing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]",
        "terseLabel": "Cash flows from financing activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "auth_ref": [
      "r207"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 2.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.",
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "totalLabel": "Net cash used in investing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]",
        "terseLabel": "Cash flows from investing activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "auth_ref": [
      "r40",
      "r42",
      "r45"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 3.0,
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.",
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "totalLabel": "Net cash provided by operating activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]",
        "terseLabel": "Cash flows from operating activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetIncomeLoss": {
     "auth_ref": [
      "r25",
      "r45",
      "r161",
      "r173",
      "r182",
      "r196",
      "r197",
      "r201",
      "r213",
      "r223",
      "r228",
      "r229",
      "r230",
      "r231",
      "r234",
      "r235",
      "r258",
      "r287",
      "r292",
      "r298",
      "r301",
      "r316",
      "r363",
      "r364",
      "r366",
      "r367",
      "r368",
      "r370",
      "r372",
      "r374",
      "r375",
      "r562",
      "r567",
      "r676",
      "r748"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 8.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.",
        "label": "Net Income (Loss) Attributable to Parent",
        "totalLabel": "Net income and comprehensive income",
        "verboseLabel": "Net income"
       }
      }
     },
     "localname": "NetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY",
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetIncomeLossAvailableToCommonStockholdersBasic": {
     "auth_ref": [
      "r228",
      "r229",
      "r230",
      "r231",
      "r239",
      "r240",
      "r259",
      "r262",
      "r287",
      "r292",
      "r298",
      "r301",
      "r676"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities; of income (loss) available to common shareholders.",
        "label": "Net Income (Loss) Available to Common Stockholders, Basic",
        "terseLabel": "Net income \u2013 basic"
       }
      }
     },
     "localname": "NetIncomeLossAvailableToCommonStockholdersBasic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetIncomeLossAvailableToCommonStockholdersDiluted": {
     "auth_ref": [
      "r241",
      "r247",
      "r248",
      "r249",
      "r250",
      "r259",
      "r262"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after deduction of tax, noncontrolling interests, dividends on preferred stock and participating securities, and addition from assumption of issuance of common shares for dilutive potential common shares; of income (loss) available to common shareholders.",
        "label": "Net Income (Loss) Available to Common Stockholders, Diluted",
        "terseLabel": "Net income \u2013 diluted"
       }
      }
     },
     "localname": "NetIncomeLossAvailableToCommonStockholdersDiluted",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": {
     "auth_ref": [
      "r180",
      "r221",
      "r222",
      "r225",
      "r226",
      "r236",
      "r237",
      "r238",
      "r314",
      "r315",
      "r321",
      "r322",
      "r523",
      "r524",
      "r525",
      "r558",
      "r564",
      "r565",
      "r566",
      "r574",
      "r575",
      "r576",
      "r595",
      "r596",
      "r614",
      "r620",
      "r632",
      "r633",
      "r634",
      "r648",
      "r649",
      "r650",
      "r651",
      "r653"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for change in accounting principle. Includes, but is not limited to, nature, reason, and method of adopting amendment to accounting standards or other change in accounting principle.",
        "label": "Accounting Standards Update and Change in Accounting Principle [Text Block]",
        "terseLabel": "Recently Issued Accounting Pronouncements"
       }
      }
     },
     "localname": "NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/RecentlyIssuedAccountingPronouncements"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "New Accounting Pronouncements or Change in Accounting Principle [Line Items]",
        "terseLabel": "New Accounting Pronouncements or Change in Accounting Principle [Line Items]"
       }
      }
     },
     "localname": "NewAccountingPronouncementsOrChangeInAccountingPrincipleLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/RecentlyIssuedAccountingPronouncementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NewAccountingPronouncementsOrChangeInAccountingPrincipleTable": {
     "auth_ref": [
      "r54",
      "r175",
      "r176",
      "r177",
      "r178",
      "r179",
      "r220",
      "r223",
      "r224",
      "r225",
      "r227",
      "r230",
      "r236",
      "r266",
      "r312",
      "r313",
      "r317",
      "r318",
      "r319",
      "r320",
      "r323",
      "r324",
      "r490",
      "r491",
      "r492",
      "r519",
      "r520",
      "r521",
      "r522",
      "r539",
      "r540",
      "r541",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r577",
      "r578",
      "r586",
      "r587",
      "r591",
      "r592",
      "r593",
      "r594",
      "r613",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r629",
      "r630",
      "r631",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r647",
      "r648",
      "r649",
      "r650",
      "r651",
      "r652",
      "r653"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Summarization of the changes in an accounting principle or a new accounting pronouncement, including the line items affected by the change and the financial effects of the change on those particular line items.",
        "label": "Accounting Standards Update and Change in Accounting Principle [Table]",
        "terseLabel": "New Accounting Pronouncements or Change in Accounting Principle [Table]"
       }
      }
     },
     "localname": "NewAccountingPronouncementsOrChangeInAccountingPrincipleTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/RecentlyIssuedAccountingPronouncementsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy pertaining to new accounting pronouncements that may impact the entity's financial reporting. Includes, but is not limited to, quantification of the expected or actual impact.",
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "terseLabel": "Recently Adopted Accounting Pronouncements"
       }
      }
     },
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NoncashInvestingAndFinancingItemsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Noncash Investing and Financing Items [Abstract]",
        "terseLabel": "Non-cash investing and financing activities:"
       }
      }
     },
     "localname": "NoncashInvestingAndFinancingItemsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NoncashOrPartNoncashAcquisitionPayablesAssumed1": {
     "auth_ref": [
      "r49",
      "r50",
      "r51"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The amount of payables that an Entity assumes in acquiring a business or in consideration for an asset received in a noncash (or part noncash) acquisition. Noncash is defined as transactions during a period that affect recognized assets or liabilities but that do not result in cash receipts or cash payments in the period. \"Part noncash\" refers to that portion of the transaction not resulting in cash receipts or cash payments in the period.",
        "label": "Noncash or Part Noncash Acquisition, Payables Assumed",
        "terseLabel": "Notes payable and other obligations issued for acquisitions"
       }
      }
     },
     "localname": "NoncashOrPartNoncashAcquisitionPayablesAssumed1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NoncompeteAgreementsMember": {
     "auth_ref": [
      "r131"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party.",
        "label": "Noncompete Agreements [Member]",
        "terseLabel": "Non-compete",
        "verboseLabel": "Non-compete"
       }
      }
     },
     "localname": "NoncompeteAgreementsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsWeightedAverageUsefulLivesofIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NotesPayable": {
     "auth_ref": [
      "r2",
      "r157",
      "r169"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Including the current and noncurrent portions, aggregate carrying amount of all types of notes payable, as of the balance sheet date, with initial maturities beyond one year or beyond the normal operating cycle, if longer.",
        "label": "Notes Payable",
        "terseLabel": "Notes payable"
       }
      }
     },
     "localname": "NotesPayable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails",
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NumberOfBusinessesAcquired": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of businesses acquired by the entity during the period.",
        "label": "Number of Businesses Acquired",
        "terseLabel": "Number of businesses acquired"
       }
      }
     },
     "localname": "NumberOfBusinessesAcquired",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "us-gaap_NumberOfOperatingSegments": {
     "auth_ref": [
      "r726"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues.",
        "label": "Number of Operating Segments",
        "terseLabel": "Number of operating segments"
       }
      }
     },
     "localname": "NumberOfOperatingSegments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsNarrativeDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "us-gaap_NumberOfReportingUnits": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of reporting units tested for impairment of goodwill. A reporting unit is an operating segment or one level below an operating segment.",
        "label": "Number of Reporting Units",
        "terseLabel": "Number of reportable segments"
       }
      }
     },
     "localname": "NumberOfReportingUnits",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsNarrativeDetails"
     ],
     "xbrltype": "integerItemType"
    },
    "us-gaap_OperatingExpenses": {
     "auth_ref": [],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeInterestExpenseInterestIncomeIncomeTaxesExtraordinaryItemsNoncontrollingInterestsNet",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Generally recurring costs associated with normal operations except for the portion of these expenses which can be clearly related to production and included in cost of sales or services. Includes selling, general and administrative expense.",
        "label": "Operating Expenses",
        "totalLabel": "Total operating expenses"
       }
      }
     },
     "localname": "OperatingExpenses",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingExpensesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Operating Expenses [Abstract]",
        "terseLabel": "Operating expenses:"
       }
      }
     },
     "localname": "OperatingExpensesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OperatingLeaseCost": {
     "auth_ref": [
      "r604",
      "r696"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofLeaseCostDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of single lease cost, calculated by allocation of remaining cost of lease over remaining lease term. Includes, but is not limited to, single lease cost, after impairment of right-of-use asset, calculated by amortization of remaining right-of-use asset and accretion of lease liability.",
        "label": "Operating Lease, Cost",
        "terseLabel": "Operating lease cost"
       }
      }
     },
     "localname": "OperatingLeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofLeaseCostDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseExpense": {
     "auth_ref": [
      "r794"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 3.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of operating lease expense. Excludes sublease income.",
        "label": "Operating Lease, Expense",
        "terseLabel": "Facilities and facilities related"
       }
      }
     },
     "localname": "OperatingLeaseExpense",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilitiesPaymentsDueAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Lessee, Operating Lease, Liability, to be Paid [Abstract]",
        "terseLabel": "Operating Leases"
       }
      }
     },
     "localname": "OperatingLeaseLiabilitiesPaymentsDueAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OperatingLeaseLiability": {
     "auth_ref": [
      "r598"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease.",
        "label": "Operating Lease, Liability",
        "terseLabel": "Present value of lease liabilities"
       }
      }
     },
     "localname": "OperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofMaturitiesofLeaseLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "auth_ref": [
      "r598"
     ],
     "calculation": {
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      },
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails": {
       "order": 1.0,
       "parentTag": "nvee_OperatingAndFinanceLeasesLiability",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current.",
        "label": "Operating Lease, Liability, Current",
        "negatedLabel": "Operating",
        "terseLabel": "Current portion of lease liability"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails",
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList": {
     "auth_ref": [
      "r599"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates line item in statement of financial position that includes current operating lease liability.",
        "label": "Operating Lease, Liability, Current, Statement of Financial Position [Extensible Enumeration]",
        "terseLabel": "Operating Lease, Liability, Current, Statement of Financial Position [Extensible List]"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityCurrentStatementOfFinancialPositionExtensibleList",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "enumerationSetItemType"
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "auth_ref": [
      "r598"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails": {
       "order": 3.0,
       "parentTag": "nvee_OperatingAndFinanceLeasesLiability",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent.",
        "label": "Operating Lease, Liability, Noncurrent",
        "negatedLabel": "Operating"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrentStatementOfFinancialPositionExtensibleList": {
     "auth_ref": [
      "r599"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Indicates line item in statement of financial position that includes noncurrent operating lease liability.",
        "label": "Operating Lease, Liability, Noncurrent, Statement of Financial Position [Extensible Enumeration]",
        "terseLabel": "Operating Lease, Liability, Noncurrent, Statement of Financial Position [Extensible List]"
       }
      }
     },
     "localname": "OperatingLeaseLiabilityNoncurrentStatementOfFinancialPositionExtensibleList",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "enumerationSetItemType"
    },
    "us-gaap_OperatingLeasePayments": {
     "auth_ref": [
      "r602",
      "r606"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.",
        "label": "Operating Lease, Payments",
        "terseLabel": "Operating cash flows from operating leases"
       }
      }
     },
     "localname": "OperatingLeasePayments",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalCashFlowInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "auth_ref": [
      "r597"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      },
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails": {
       "order": 1.0,
       "parentTag": "nvee_OperatingAndFinanceLeasesRightOfUseAssets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of lessee's right to use underlying asset under operating lease.",
        "label": "Operating Lease, Right-of-Use Asset",
        "terseLabel": "Right-of-use lease assets, net",
        "verboseLabel": "Operating lease assets"
       }
      }
     },
     "localname": "OperatingLeaseRightOfUseAsset",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://www.nv5.com/role/LeasesScheduleofSupplementalBalanceSheetInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "auth_ref": [
      "r609",
      "r696"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average discount rate for operating lease calculated at point in time.",
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "terseLabel": "Operating leases"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofLeaseTermandDiscountRateDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "auth_ref": [
      "r608",
      "r696"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Operating Lease, Weighted Average Remaining Lease Term",
        "terseLabel": "Operating leases"
       }
      }
     },
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofLeaseTermandDiscountRateDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_OperatingSegmentsMember": {
     "auth_ref": [
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r301"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identifies components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity.",
        "label": "Operating Segments [Member]",
        "terseLabel": "Operating segments"
       }
      }
     },
     "localname": "OperatingSegmentsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock": {
     "auth_ref": [
      "r53",
      "r55",
      "r64",
      "r145"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for the general note to the financial statements for the reporting entity which may include, descriptions of the basis of presentation, business description, significant accounting policies, consolidations, reclassifications, new pronouncements not yet adopted and changes in accounting principles.",
        "label": "Organization, Consolidation, Basis of Presentation, Business Description and Accounting Policies [Text Block]",
        "terseLabel": "Organization and Nature of Business Operations"
       }
      }
     },
     "localname": "OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/OrganizationandNatureofBusinessOperations"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_OtherAccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r16"
     ],
     "calculation": {
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails": {
       "order": 5.0,
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expenses incurred but not yet paid classified as other, due within one year or the normal operating cycle, if longer.",
        "label": "Other Accrued Liabilities, Current",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "OtherAccruedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/AccruedLiabilitiesSummaryofAccruedLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherAssetImpairmentCharges": {
     "auth_ref": [
      "r715",
      "r745"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The charge against earnings resulting from the write down of long lived assets other than goodwill due to the difference between the carrying value and lower fair value.",
        "label": "Other Asset Impairment Charges",
        "terseLabel": "Goodwill and intangible asset impairment"
       }
      }
     },
     "localname": "OtherAssetImpairmentCharges",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "auth_ref": [
      "r188"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 5.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncurrent assets classified as other.",
        "label": "Other Assets, Noncurrent",
        "terseLabel": "Other assets"
       }
      }
     },
     "localname": "OtherAssetsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherCommitment": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Minimum amount of other commitment not otherwise specified in the taxonomy. Excludes commitments explicitly modeled in the taxonomy, including but not limited to, long-term and short-term purchase commitments, recorded and unrecorded purchase obligations, supply commitments, registration payment arrangements, leases, debt, product warranties, guarantees, environmental remediation obligations, and pensions.",
        "label": "Other Commitment",
        "terseLabel": "Other obligations"
       }
      }
     },
     "localname": "OtherCommitment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherDepreciationAndAmortization": {
     "auth_ref": [
      "r29",
      "r44",
      "r90"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 15.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense charged against earnings to allocate the cost of tangible and intangible assets over their remaining economic lives, classified as other.",
        "label": "Other Depreciation and Amortization",
        "verboseLabel": "Depreciation and amortization"
       }
      }
     },
     "localname": "OtherDepreciationAndAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherIntangibleAssetsMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Intangible assets classified as other.",
        "label": "Other Intangible Assets [Member]",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "OtherIntangibleAssetsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OtherLiabilitiesCurrent": {
     "auth_ref": [
      "r16",
      "r697"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 6.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities classified as other, due within one year or the normal operating cycle, if longer.",
        "label": "Other Liabilities, Current",
        "terseLabel": "Other current liabilities"
       }
      }
     },
     "localname": "OtherLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "auth_ref": [
      "r19"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 5.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.",
        "label": "Other Liabilities, Noncurrent",
        "terseLabel": "Other long-term liabilities"
       }
      }
     },
     "localname": "OtherLiabilitiesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OverAllotmentOptionMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Right given to the underwriter to sell additional shares over the initial allotment.",
        "label": "Over-Allotment Option [Member]",
        "terseLabel": "Over-Allotment Option"
       }
      }
     },
     "localname": "OverAllotmentOptionMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockholdersEquityDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PayablesAndAccrualsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Payables and Accruals [Abstract]",
        "terseLabel": "Payables and Accruals [Abstract]"
       }
      }
     },
     "localname": "PayablesAndAccrualsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityFinancingActivities": {
     "auth_ref": [
      "r38"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 6.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow, not made soon after acquisition date of business combination, to settle contingent consideration liability up to amount recognized at acquisition date, including, but not limited to, measurement period adjustment and less amount paid soon after acquisition date.",
        "label": "Payment for Contingent Consideration Liability, Financing Activities",
        "negatedTerseLabel": "Payments of contingent consideration"
       }
      }
     },
     "localname": "PaymentForContingentConsiderationLiabilityFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsOfDebtIssuanceCosts": {
     "auth_ref": [
      "r37"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 7.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow paid to third parties in connection with debt origination, which will be amortized over the remaining maturity period of the associated long-term debt.",
        "label": "Payments of Debt Issuance Costs",
        "negatedLabel": "Payments of debt issuance costs"
       }
      }
     },
     "localname": "PaymentsOfDebtIssuanceCosts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsOfStockIssuanceCosts": {
     "auth_ref": [
      "r39"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 8.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow for cost incurred directly with the issuance of an equity security.",
        "label": "Payments of Stock Issuance Costs",
        "negatedLabel": "Payments of common stock offering costs"
       }
      }
     },
     "localname": "PaymentsOfStockIssuanceCosts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "auth_ref": [
      "r205"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement.",
        "label": "Payment, Tax Withholding, Share-Based Payment Arrangement",
        "negatedTerseLabel": "Purchases of common stock tendered by employees to satisfy the required withholding taxes related to stock-based compensation"
       }
      }
     },
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireBusinessesGross": {
     "auth_ref": [
      "r32",
      "r542"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.",
        "label": "Payments to Acquire Businesses, Gross",
        "terseLabel": "Payments to acquire businesses"
       }
      }
     },
     "localname": "PaymentsToAcquireBusinessesGross",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails",
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "auth_ref": [
      "r32"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow associated with the acquisition of a business, net of the cash acquired from the purchase.",
        "label": "Payments to Acquire Businesses, Net of Cash Acquired",
        "negatedLabel": "Cash paid for acquisitions (net of cash received from acquisitions)"
       }
      }
     },
     "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "auth_ref": [
      "r33"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets.",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "negatedLabel": "Purchase of property and equipment"
       }
      }
     },
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock": {
     "auth_ref": [
      "r440",
      "r441",
      "r442",
      "r443",
      "r444",
      "r445",
      "r446",
      "r447",
      "r448",
      "r449",
      "r450",
      "r451",
      "r453",
      "r689"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for retirement benefits.",
        "label": "Retirement Benefits [Text Block]",
        "terseLabel": "Employee Benefit Plan"
       }
      }
     },
     "localname": "PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlan"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PlanNameAxis": {
     "auth_ref": [
      "r755",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r761",
      "r762",
      "r763",
      "r764",
      "r765",
      "r766",
      "r767",
      "r768",
      "r769",
      "r770",
      "r771",
      "r772",
      "r773",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778",
      "r779",
      "r780"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by plan name for share-based payment arrangement.",
        "label": "Plan Name [Axis]",
        "terseLabel": "Plan Name [Axis]"
       }
      }
     },
     "localname": "PlanNameAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails",
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PlanNameDomain": {
     "auth_ref": [
      "r755",
      "r756",
      "r757",
      "r758",
      "r759",
      "r760",
      "r761",
      "r762",
      "r763",
      "r764",
      "r765",
      "r766",
      "r767",
      "r768",
      "r769",
      "r770",
      "r771",
      "r772",
      "r773",
      "r774",
      "r775",
      "r776",
      "r777",
      "r778",
      "r779",
      "r780"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Plan name for share-based payment arrangement.",
        "label": "Plan Name [Domain]",
        "terseLabel": "Plan Name [Domain]"
       }
      }
     },
     "localname": "PlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails",
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r5",
      "r405"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.",
        "label": "Preferred Stock, Par or Stated Value Per Share",
        "terseLabel": "Preferred stock, par value (in dollars per share)"
       }
      }
     },
     "localname": "PreferredStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETSParentheticals"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "auth_ref": [
      "r5"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.",
        "label": "Preferred Stock, Shares Authorized",
        "terseLabel": "Preferred stock, shares authorized (in shares)"
       }
      }
     },
     "localname": "PreferredStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETSParentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesIssued": {
     "auth_ref": [
      "r5",
      "r405"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.",
        "label": "Preferred Stock, Shares Issued",
        "terseLabel": "Preferred stock, shares issued (in shares)"
       }
      }
     },
     "localname": "PreferredStockSharesIssued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETSParentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "auth_ref": [
      "r5"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.",
        "label": "Preferred Stock, Shares Outstanding",
        "terseLabel": "Preferred stock, shares outstanding (in shares)"
       }
      }
     },
     "localname": "PreferredStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETSParentheticals"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockValue": {
     "auth_ref": [
      "r5",
      "r697"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Aggregate par or stated value of issued nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer). This item includes treasury stock repurchased by the entity. Note: elements for number of nonredeemable preferred shares, par value and other disclosure concepts are in another section within stockholders' equity.",
        "label": "Preferred Stock, Value, Issued",
        "terseLabel": "Preferred stock, $0.01 par value; 5,000,000 shares authorized, no shares issued and outstanding"
       }
      }
     },
     "localname": "PreferredStockValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "auth_ref": [
      "r712"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of asset related to consideration paid in advance for costs that provide economic benefits in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.",
        "label": "Prepaid Expense and Other Assets, Current",
        "terseLabel": "Prepaid expenses and other current assets"
       }
      }
     },
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromIssuanceOfCommonStock": {
     "auth_ref": [
      "r34"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow from the additional capital contribution to the entity.",
        "label": "Proceeds from Issuance of Common Stock",
        "terseLabel": "Proceeds from common stock offering"
       }
      }
     },
     "localname": "ProceedsFromIssuanceOfCommonStock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://www.nv5.com/role/StockholdersEquityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromLinesOfCredit": {
     "auth_ref": [
      "r35",
      "r717"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash inflow from contractual arrangement with the lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.",
        "label": "Proceeds from Lines of Credit",
        "terseLabel": "Aggregate credit agreement"
       }
      }
     },
     "localname": "ProceedsFromLinesOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromLongTermLinesOfCredit": {
     "auth_ref": [
      "r35"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow from a contractual arrangement with the lender, including letter of credit, standby letter of credit and revolving credit arrangements, under which borrowings can be made up to a specific amount at any point in time with maturities due beyond one year or the operating cycle, if longer.",
        "label": "Proceeds from Long-Term Lines of Credit",
        "terseLabel": "Borrowings from Senior Credit Facility"
       }
      }
     },
     "localname": "ProceedsFromLongTermLinesOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromSaleOfProductiveAssets": {
     "auth_ref": [
      "r31"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash inflow from the sale of property, plant and equipment (capital expenditures), software, and other intangible assets.",
        "label": "Proceeds from Sale of Productive Assets",
        "terseLabel": "Proceeds from sale of assets"
       }
      }
     },
     "localname": "ProceedsFromSaleOfProductiveAssets",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductInformationLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Product Information [Line Items]",
        "terseLabel": "Product Information [Line Items]"
       }
      }
     },
     "localname": "ProductInformationLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Property, Plant and Equipment [Abstract]",
        "terseLabel": "Property, Plant and Equipment [Abstract]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAccumulatedDepreciationAndAmortization": {
     "auth_ref": [
      "r743",
      "r793",
      "r795"
     ],
     "calculation": {
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of accumulated depreciation and amortization from plant, property, and equipment and right-of-use asset from finance lease.",
        "label": "Property, Plant, and Equipment and Finance Lease Right-of-Use Asset, Accumulated Depreciation and Amortization",
        "negatedLabel": "Less: accumulated depreciation"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAccumulatedDepreciationAndAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization": {
     "auth_ref": [
      "r744",
      "r795"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      },
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, after accumulated depreciation and amortization, of property, plant, and equipment and finance lease right-of-use asset.",
        "label": "Property, Plant, and Equipment and Finance Lease Right-of-Use Asset, after Accumulated Depreciation and Amortization",
        "terseLabel": "Property and equipment, net",
        "totalLabel": "Property and equipment, net"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization": {
     "auth_ref": [
      "r711",
      "r742",
      "r792"
     ],
     "calculation": {
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails": {
       "order": 2.0,
       "parentTag": "us-gaap_PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetAfterAccumulatedDepreciationAndAmortization",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, before accumulated depreciation and amortization, of property, plant, and equipment and finance lease right-of-use asset.",
        "label": "Property, Plant, and Equipment and Finance Lease Right-of-Use Asset, before Accumulated Depreciation and Amortization",
        "terseLabel": "Total"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentAndFinanceLeaseRightOfUseAssetBeforeAccumulatedDepreciationAndAmortization",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "auth_ref": [
      "r92"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.",
        "label": "Long-Lived Tangible Asset [Axis]",
        "terseLabel": "Property, Plant and Equipment, Type [Axis]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails",
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesEstimatedUsefulLivesofPropertyandEquipmentDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "auth_ref": [
      "r95",
      "r658",
      "r659",
      "r660"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
        "label": "Property, Plant and Equipment Disclosure [Text Block]",
        "terseLabel": "Property and Equipment, net"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnet"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Property, Plant and Equipment [Line Items]",
        "terseLabel": "Property, Plant and Equipment [Line Items]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails",
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesEstimatedUsefulLivesofPropertyandEquipmentDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "auth_ref": [
      "r92",
      "r658",
      "r659"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections.",
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]",
        "terseLabel": "Property and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "auth_ref": [
      "r92"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.",
        "label": "Property, Plant and Equipment [Table Text Block]",
        "terseLabel": "Schedule of property and equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "auth_ref": [
      "r91"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.",
        "label": "Long-Lived Tangible Asset [Domain]",
        "terseLabel": "Property, Plant and Equipment, Type [Domain]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails",
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesEstimatedUsefulLivesofPropertyandEquipmentDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.",
        "label": "Property, Plant and Equipment, Useful Life",
        "terseLabel": "Property, plant and equipment, useful life"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesEstimatedUsefulLivesofPropertyandEquipmentDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "auth_ref": [
      "r204",
      "r327"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 13.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable.",
        "label": "Accounts Receivable, Credit Loss Expense (Reversal)",
        "terseLabel": "Provision for doubtful accounts",
        "verboseLabel": "Provision for doubtful accounts"
       }
      }
     },
     "localname": "ProvisionForDoubtfulAccounts",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BilledandUnbilledReceivablesActivityintheAllowanceforDoubtfulAccountsDetails",
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ReceivablesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Receivables [Abstract]",
        "terseLabel": "Receivables [Abstract]"
       }
      }
     },
     "localname": "ReceivablesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_ReconciliationOfRevenueFromSegmentsToConsolidatedTable": {
     "auth_ref": [
      "r67",
      "r69"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identification, description, and amounts of all significant reconciling items in the reconciliation of total revenues from reportable segments to the entity's consolidated revenues.",
        "label": "Reconciliation of Revenue from Segments to Consolidated [Table]",
        "terseLabel": "Reconciliation of Revenue from Segments to Consolidated [Table]"
       }
      }
     },
     "localname": "ReconciliationOfRevenueFromSegmentsToConsolidatedTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]",
        "terseLabel": "Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]"
       }
      }
     },
     "localname": "ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesUnrecognizedTaxLiabilityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RepaymentsOfLinesOfCredit": {
     "auth_ref": [
      "r36",
      "r717"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash outflow for payment of an obligation from a lender, including but not limited to, letter of credit, standby letter of credit and revolving credit arrangements.",
        "label": "Repayments of Lines of Credit",
        "negatedTerseLabel": "Payments on notes payable"
       }
      }
     },
     "localname": "RepaymentsOfLinesOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RepaymentsOfLongTermLinesOfCredit": {
     "auth_ref": [
      "r36"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cash outflow for the settlement of obligation drawn from a contractual arrangement with the lender, including letter of credit, standby letter of credit and revolving credit arrangements, under which borrowings can be made up to a specific amount at any point in time with maturities due beyond one year or the operating cycle, if longer.",
        "label": "Repayments of Long-Term Lines of Credit",
        "negatedTerseLabel": "Payments of borrowings from Senior Credit Facility"
       }
      }
     },
     "localname": "RepaymentsOfLongTermLinesOfCredit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestrictedStockMember": {
     "auth_ref": [
      "r56"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met.",
        "label": "Restricted Stock [Member]",
        "terseLabel": "Restricted stock"
       }
      }
     },
     "localname": "RestrictedStockMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EarningsPerShareNarrativeDetails",
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails",
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "auth_ref": [
      "r8",
      "r109",
      "r170",
      "r648",
      "r653",
      "r697"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings (Accumulated Deficit)",
        "terseLabel": "Retained earnings"
       }
      }
     },
     "localname": "RetainedEarningsAccumulatedDeficit",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsMember": {
     "auth_ref": [
      "r177",
      "r217",
      "r218",
      "r219",
      "r224",
      "r233",
      "r235",
      "r320",
      "r490",
      "r491",
      "r492",
      "r521",
      "r522",
      "r560",
      "r644",
      "r646"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings [Member]",
        "terseLabel": "Retained Earnings"
       }
      }
     },
     "localname": "RetainedEarningsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "auth_ref": [
      "r278",
      "r279",
      "r291",
      "r296",
      "r297",
      "r303",
      "r304",
      "r307",
      "r435",
      "r436",
      "r627"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, excluding tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value added and excise.",
        "label": "Revenue from Contract with Customer, Excluding Assessed Tax",
        "terseLabel": "Revenue from contract with customer"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerIncludingAssessedTax": {
     "auth_ref": [
      "r278",
      "r279",
      "r291",
      "r296",
      "r297",
      "r303",
      "r304",
      "r307",
      "r435",
      "r436",
      "r627"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME": {
       "order": 2.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount, including tax collected from customer, of revenue from satisfaction of performance obligation by transferring promised good or service to customer. Tax collected from customer is tax assessed by governmental authority that is both imposed on and concurrent with specific revenue-producing transaction, including, but not limited to, sales, use, value-added and excise.",
        "label": "Revenue from Contract with Customer, Including Assessed Tax",
        "terseLabel": "Gross revenues"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerIncludingAssessedTax",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyGeographicLocationDetails",
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueFromContractWithCustomerPolicyTextBlock": {
     "auth_ref": [
      "r427",
      "r428",
      "r429",
      "r430",
      "r431",
      "r432",
      "r433",
      "r434",
      "r439",
      "r673"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for revenue from contract with customer.",
        "label": "Revenue from Contract with Customer [Policy Text Block]",
        "terseLabel": "Revenue Recognition"
       }
      }
     },
     "localname": "RevenueFromContractWithCustomerPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock": {
     "auth_ref": [
      "r72"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of revenue from external customers by geographic areas attributed to the entity's country of domicile and to foreign countries from which the entity derives revenue.",
        "label": "Revenue from External Customers by Geographic Areas [Table Text Block]",
        "terseLabel": "Schedule of revenue from external customers by geographic areas"
       }
      }
     },
     "localname": "RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligation": {
     "auth_ref": [
      "r425"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of transaction price allocated to performance obligation that has not been recognized as revenue.",
        "label": "Revenue, Remaining Performance Obligation, Amount",
        "terseLabel": "Revenue remaining performance obligation amount"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]",
        "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Line Items]"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1": {
     "auth_ref": [
      "r426"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period in which remaining performance obligation is expected to be recognized as revenue, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Period",
        "terseLabel": "Revenue performance obligation expected timing of satisfaction period"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionPeriod1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis": {
     "auth_ref": [
      "r426"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Start date of time band for expected timing of satisfaction of remaining performance obligation, in YYYY-MM-DD format.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]",
        "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction, Start Date [Axis]"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionStartDateAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about expected timing for satisfying remaining performance obligation.",
        "label": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]",
        "terseLabel": "Revenue, Remaining Performance Obligation, Expected Timing of Satisfaction [Table]"
       }
      }
     },
     "localname": "RevenueRemainingPerformanceObligationExpectedTimingOfSatisfactionTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Revenues from External Customers and Long-Lived Assets [Line Items]",
        "terseLabel": "Revenues from External Customers and Long-Lived Assets [Line Items]"
       }
      }
     },
     "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyGeographicLocationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RevolvingCreditFacilityMember": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Arrangement in which loan proceeds can continuously be obtained following repayments, but the total amount borrowed cannot exceed a specified maximum amount.",
        "label": "Revolving Credit Facility [Member]",
        "terseLabel": "Revolving Credit Facility"
       }
      }
     },
     "localname": "RevolvingCreditFacilityMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability": {
     "auth_ref": [
      "r607",
      "r696"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in right-of-use asset obtained in exchange for operating lease liability.",
        "label": "Right-of-Use Asset Obtained in Exchange for Operating Lease Liability",
        "terseLabel": "Operating leases"
       }
      }
     },
     "localname": "RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofSupplementalCashFlowInformationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SaleOfStockNameOfTransactionDomain": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Sale of the entity's stock, including, but not limited to, initial public offering (IPO) and private placement.",
        "label": "Sale of Stock [Domain]",
        "terseLabel": "Sale of Stock [Domain]"
       }
      }
     },
     "localname": "SaleOfStockNameOfTransactionDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockholdersEquityDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SalesRevenueNetMember": {
     "auth_ref": [
      "r307",
      "r725"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation.",
        "label": "Revenue Benchmark [Member]",
        "terseLabel": "Revenue benchmark"
       }
      }
     },
     "localname": "SalesRevenueNetMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock": {
     "auth_ref": [
      "r22"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the various types of trade accounts and notes receivable and for each the gross carrying value, allowance, and net carrying value as of the balance sheet date. Presentation is categorized by current, noncurrent and unclassified receivables.",
        "label": "Schedule of Accounts, Notes, Loans and Financing Receivable [Table Text Block]",
        "terseLabel": "Schedule of accounts, notes, loans and financing receivable"
       }
      }
     },
     "localname": "ScheduleOfAccountsNotesLoansAndFinancingReceivableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BilledandUnbilledReceivablesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of accrued liabilities.",
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "terseLabel": "Schedule of accrued liabilities"
       }
      }
     },
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/AccruedLiabilitiesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable": {
     "auth_ref": [
      "r79"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the major classes of acquired finite-lived intangible assets showing the amount, any significant residual value, weighted average amortization period, and other characteristics. A major class is composed of intangible assets that can be grouped together because they are similar, either by nature or by their use in the operations of the company.",
        "label": "Schedule of Acquired Finite-Lived Intangible Asset by Major Class [Table]",
        "terseLabel": "Schedule of Acquired Finite-Lived Intangible Asset by Major Class [Table]"
       }
      }
     },
     "localname": "ScheduleOfAcquiredFiniteLivedIntangibleAssetByMajorClassTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock": {
     "auth_ref": [
      "r79"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the characteristics, including initial carrying value, residual amount, weighted average useful life, of finite-lived intangible assets acquired during the period by major class. A major class is composed of intangible assets that can be grouped together because they are similar, either by nature or by their use in the operations of the company.",
        "label": "Schedule of Acquired Finite-Lived Intangible Assets by Major Class [Table Text Block]",
        "terseLabel": "Schedule of acquired finite-lived intangible assets by major class"
       }
      }
     },
     "localname": "ScheduleOfAcquiredFiniteLivedIntangibleAssetsByMajorClassTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": {
     "auth_ref": [
      "r56"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule for securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by Antidilutive Securities.",
        "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]",
        "terseLabel": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]"
       }
      }
     },
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EarningsPerShareNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionContingentConsiderationTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of contingent payment arrangements including the terms that will result in payment and the accounting treatment that will be followed if such contingencies occur, including the potential impact on earnings per share if contingencies are to be settled in common stock of the entity. The description also may include the period over which amounts are expected to be paid, and changes in the amount since the previous reporting period. This also includes contingent options and commitments.",
        "label": "Schedule of Business Acquisitions by Acquisition, Contingent Consideration [Table Text Block]",
        "terseLabel": "Schedule of changes carrying value of estimated contingent consideration"
       }
      }
     },
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionContingentConsiderationTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ContingentConsiderationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "auth_ref": [
      "r120"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years.",
        "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]",
        "terseLabel": "Schedule of components of income tax expense (benefit)"
       }
      }
     },
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDebtInstrumentsTextBlock": {
     "auth_ref": [
      "r18",
      "r103",
      "r106",
      "r107",
      "r108",
      "r149",
      "r150",
      "r152",
      "r164",
      "r680",
      "r682",
      "r720"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of long-debt instruments or arrangements, including identification, terms, features, collateral requirements and other information necessary to a fair presentation. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the entity, if longer.",
        "label": "Schedule of Long-Term Debt Instruments [Table Text Block]",
        "terseLabel": "Schedule of notes payable and other obligations"
       }
      }
     },
     "localname": "ScheduleOfDebtInstrumentsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "auth_ref": [
      "r117"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the components of net deferred tax asset or liability recognized in an entity's statement of financial position, including the following: the total of all deferred tax liabilities, the total of all deferred tax assets, the total valuation allowance recognized for deferred tax assets.",
        "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]",
        "terseLabel": "Schedule of deferred tax assets and liabilities"
       }
      }
     },
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "auth_ref": [
      "r724"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.",
        "label": "Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]",
        "terseLabel": "Schedule of reconciliation of the net income and weighted average shares outstanding for the calculation of basic and diluted earnings per share"
       }
      }
     },
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EarningsperShareTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "auth_ref": [
      "r116"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations.",
        "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "terseLabel": "Schedule of effective income tax rate reconciliation"
       }
      }
     },
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock": {
     "auth_ref": [
      "r71"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of entity-wide revenues from external customers for each product or service or each group of similar products or services if the information is not provided as part of the reportable operating segment information.",
        "label": "Revenue from External Customers by Products and Services [Table Text Block]",
        "terseLabel": "Schedule of revenue from external customers by products and services"
       }
      }
     },
     "localname": "ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "auth_ref": [
      "r79",
      "r83",
      "r628"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of assets, excluding financial assets and goodwill, lacking physical substance with a finite life.",
        "label": "Schedule of Finite-Lived Intangible Assets [Table]",
        "terseLabel": "Schedule of Finite-Lived Intangible Assets [Table]"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsWeightedAverageUsefulLivesofIntangibleAssetsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "auth_ref": [
      "r79",
      "r83"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of assets, excluding financial assets and goodwill, lacking physical substance with a finite life, by either major class or business segment.",
        "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]",
        "terseLabel": "Schedule of finite-lived intangible assets"
       }
      }
     },
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "auth_ref": [
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r338",
      "r339",
      "r340",
      "r341",
      "r678"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of goodwill and the changes during the year due to acquisition, sale, impairment or for other reasons.",
        "label": "Schedule of Goodwill [Table]",
        "terseLabel": "Schedule of Goodwill [Table]"
       }
      }
     },
     "localname": "ScheduleOfGoodwillTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsNarrativeDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofGoodwillDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "auth_ref": [
      "r678",
      "r731",
      "r732",
      "r733",
      "r734",
      "r735",
      "r736",
      "r737",
      "r738",
      "r739",
      "r740",
      "r741"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule.",
        "label": "Schedule of Goodwill [Table Text Block]",
        "terseLabel": "Schedule of goodwill"
       }
      }
     },
     "localname": "ScheduleOfGoodwillTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock": {
     "auth_ref": [
      "r97"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of maturity and sinking fund requirement for long-term debt.",
        "label": "Schedule of Maturities of Long-Term Debt [Table Text Block]",
        "terseLabel": "Schedule of maturities of long-term debt"
       }
      }
     },
     "localname": "ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/NotesPayableandOtherObligationsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfProductInformationTable": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule detailing quantitative information concerning products or product lines by product or product line.",
        "label": "Schedule of Product Information [Table]",
        "terseLabel": "Schedule of Product Information [Table]"
       }
      }
     },
     "localname": "ScheduleOfProductInformationTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "auth_ref": [
      "r92"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation.",
        "label": "Property, Plant and Equipment [Table]",
        "terseLabel": "Property, Plant and Equipment [Table]"
       }
      }
     },
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/PropertyandEquipmentnetDetails",
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesEstimatedUsefulLivesofPropertyandEquipmentDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock": {
     "auth_ref": [
      "r129"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the amounts recognized as of the acquisition date for each major class of assets acquired and liabilities assumed. May include but not limited to the following: (a) acquired receivables; (b) contingencies recognized at the acquisition date; and (c) the fair value of noncontrolling interests in the acquiree.",
        "label": "Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]",
        "terseLabel": "Schedule of the fair values of the assets acquires and liabilities assumed"
       }
      }
     },
     "localname": "ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the extent of the entity's reliance on its major customers, if revenues from transactions with a single external customer amount to 10 percent or more of entity revenues, including the disclosure of that fact, the total amount of revenues from each such customer, and the identity of the reportable segment or segments reporting the revenues. The entity need not disclose the identity of a major customer or the amount of revenues that each segment reports from that customer. For these purposes, a group of companies known to the entity to be under common control is considered a single customer, and the federal government, a state government, a local government such as a county or municipality, or a foreign government is each considered a single customer.",
        "label": "Schedule of Revenue by Major Customers by Reporting Segments [Table Text Block]",
        "terseLabel": "Schedule of revenue by major customers by reporting segments"
       }
      }
     },
     "localname": "ScheduleOfRevenueByMajorCustomersByReportingSegmentsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": {
     "auth_ref": [
      "r23",
      "r73"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule of material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries.",
        "label": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]",
        "terseLabel": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]"
       }
      }
     },
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyGeographicLocationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfSegmentReportingInformationBySegmentTextBlock": {
     "auth_ref": [
      "r65",
      "r66",
      "r68",
      "r76"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the profit or loss and total assets for each reportable segment. An entity discloses certain information on each reportable segment if the amounts (a) are included in the measure of segment profit or loss reviewed by the chief operating decision maker or (b) are otherwise regularly provided to the chief operating decision maker, even if not included in that measure of segment profit or loss.",
        "label": "Schedule of Segment Reporting Information, by Segment [Table Text Block]",
        "terseLabel": "Schedule of segment reporting information, by segment"
       }
      }
     },
     "localname": "ScheduleOfSegmentReportingInformationBySegmentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "auth_ref": [
      "r454",
      "r456",
      "r459",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of information about share-based payment arrangement.",
        "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]",
        "terseLabel": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails",
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock": {
     "auth_ref": [
      "r112"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the number and weighted-average grant date fair value for restricted stock units that were outstanding at the beginning and end of the year, and the number of restricted stock units that were granted, vested, or forfeited during the year.",
        "label": "Share-Based Payment Arrangement, Restricted Stock Unit, Activity [Table Text Block]",
        "terseLabel": "Schedule of Share-based payment arrangement, restricted stock unit, activity"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfStockByClassTable": {
     "auth_ref": [
      "r99",
      "r100",
      "r101",
      "r103",
      "r104",
      "r105",
      "r106",
      "r107",
      "r108",
      "r109",
      "r190",
      "r191",
      "r192",
      "r269",
      "r405",
      "r406",
      "r407",
      "r409",
      "r413",
      "r418",
      "r420",
      "r684",
      "r710",
      "r716"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule detailing information related to equity by class of stock. Class of stock includes common, convertible, and preferred stocks which are not redeemable or redeemable solely at the option of the issuer. It also includes preferred stock with redemption features that are solely within the control of the issuer and mandatorily redeemable stock if redemption is required to occur only upon liquidation or termination of the reporting entity.",
        "label": "Schedule of Stock by Class [Table]",
        "terseLabel": "Schedule of Stock by Class [Table]"
       }
      }
     },
     "localname": "ScheduleOfStockByClassTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockholdersEquityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock": {
     "auth_ref": [
      "r695",
      "r782"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the change in unrecognized tax benefits.",
        "label": "Schedule of Unrecognized Tax Benefits Roll Forward [Table Text Block]",
        "terseLabel": "Schedule of unrecognized tax benefits roll forward"
       }
      }
     },
     "localname": "ScheduleOfUnrecognizedTaxBenefitsRollForwardTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "auth_ref": [
      "r83"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.",
        "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]",
        "terseLabel": "Schedule of finite-fived intangible assets, future amortization expense"
       }
      }
     },
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SegmentDomain": {
     "auth_ref": [
      "r275",
      "r278",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r301",
      "r307",
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r338",
      "r339",
      "r349",
      "r350",
      "r678",
      "r806"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Components of an entity that engage in business activities from which they may earn revenue and incur expenses, including transactions with other components of the same entity.",
        "label": "Segments [Domain]",
        "terseLabel": "Segments [Domain]"
       }
      }
     },
     "localname": "SegmentDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofGoodwillDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyGeographicLocationDetails",
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SegmentReportingAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Segment Reporting [Abstract]",
        "terseLabel": "Segment Reporting [Abstract]"
       }
      }
     },
     "localname": "SegmentReportingAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "auth_ref": [
      "r275",
      "r276",
      "r277",
      "r287",
      "r290",
      "r295",
      "r299",
      "r300",
      "r301",
      "r302",
      "r303",
      "r306",
      "r307",
      "r308"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments.",
        "label": "Segment Reporting Disclosure [Text Block]",
        "terseLabel": "Reportable Segments"
       }
      }
     },
     "localname": "SegmentReportingDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegments"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SegmentReportingRevenueReconcilingItemLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Segment Reporting, Revenue Reconciling Item [Line Items]",
        "terseLabel": "Segment Reporting, Revenue Reconciling Item [Line Items]"
       }
      }
     },
     "localname": "SegmentReportingRevenueReconcilingItemLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember": {
     "auth_ref": [
      "r126"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Represents the aggregation and reporting of combined amounts of individually immaterial business combinations that were completed during the period.",
        "label": "Series of Individually Immaterial Business Acquisitions [Member]",
        "terseLabel": "Series of Individually Immaterial Business Acquisitions"
       }
      }
     },
     "localname": "SeriesOfIndividuallyImmaterialBusinessAcquisitionsMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsNarrativeDetails",
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ShareBasedCompensation": {
     "auth_ref": [
      "r43"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of noncash expense for share-based payment arrangement.",
        "label": "Share-Based Payment Arrangement, Noncash Expense",
        "terseLabel": "Stock-based compensation"
       }
      }
     },
     "localname": "ShareBasedCompensation",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "auth_ref": [
      "r693"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period",
        "terseLabel": "Award vesting period"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails",
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails",
      "http://www.nv5.com/role/StockholdersEquityDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "auth_ref": [
      "r475"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period",
        "negatedLabel": "Forfeited (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r475"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value",
        "terseLabel": "Forfeited (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "auth_ref": [
      "r473"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period",
        "terseLabel": "Granted (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r473"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Granted (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "auth_ref": [
      "r470",
      "r471"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number",
        "periodEndLabel": "Ending (in shares)",
        "periodStartLabel": "Beginning (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]",
        "terseLabel": "Share Units"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r470",
      "r471"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "periodEndLabel": "Ending (in dollars per share)",
        "periodStartLabel": "Beginning (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsShareBasedLiabilitiesPaid": {
     "auth_ref": [
      "r477"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of cash paid to settle liability for award under share-based payment arrangement.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Share-Based Liabilities Paid",
        "terseLabel": "Share-based liabilities paid"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsShareBasedLiabilitiesPaid",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "auth_ref": [
      "r474"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "negatedLabel": "Vested (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue": {
     "auth_ref": [
      "r477"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Fair value of share-based awards for which the grantee gained the right by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Fair Value",
        "terseLabel": "Fair value of restricted shares vested"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodTotalFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r474"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value",
        "terseLabel": "Vested (in dollars per share)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]",
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails",
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": {
     "auth_ref": [
      "r694"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares authorized for issuance under share-based payment arrangement.",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized",
        "terseLabel": "Number of shares authorized (in shares)"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "auth_ref": [
      "r459",
      "r460",
      "r461",
      "r462",
      "r463",
      "r464",
      "r465",
      "r466",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r476",
      "r477",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Award under share-based payment arrangement.",
        "label": "Award Type [Domain]",
        "terseLabel": "Award Type [Domain]"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/EmployeeBenefitPlanDetails",
      "http://www.nv5.com/role/StockBasedCompensationNarrativeDetails",
      "http://www.nv5.com/role/StockBasedCompensationRestrictedStockAwardsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SharesIssuedPricePerShare": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Per share or per unit amount of equity securities issued.",
        "label": "Shares Issued, Price Per Share",
        "terseLabel": "Shares issued, price per share (in dollars per share)"
       }
      }
     },
     "localname": "SharesIssuedPricePerShare",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockholdersEquityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_SharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares issued which are neither cancelled nor held in the treasury.",
        "label": "Shares, Outstanding",
        "periodEndLabel": "Balance (in shares)",
        "periodStartLabel": "Balance (in shares)"
       }
      }
     },
     "localname": "SharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "auth_ref": [
      "r53",
      "r210"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity.",
        "label": "Significant Accounting Policies [Text Block]",
        "terseLabel": "Summary of Significant Accounting Policies"
       }
      }
     },
     "localname": "SignificantAccountingPoliciesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_StatementBusinessSegmentsAxis": {
     "auth_ref": [
      "r181",
      "r275",
      "r278",
      "r279",
      "r280",
      "r281",
      "r282",
      "r283",
      "r284",
      "r285",
      "r286",
      "r287",
      "r288",
      "r289",
      "r291",
      "r292",
      "r293",
      "r294",
      "r295",
      "r296",
      "r297",
      "r298",
      "r299",
      "r301",
      "r307",
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r336",
      "r337",
      "r338",
      "r339",
      "r347",
      "r349",
      "r350",
      "r678",
      "r806"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by business segments.",
        "label": "Segments [Axis]",
        "terseLabel": "Segments [Axis]"
       }
      }
     },
     "localname": "StatementBusinessSegmentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofGoodwillDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyContractTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyCustomerTypeDetails",
      "http://www.nv5.com/role/ReportableSegmentsRevenuebyGeographicLocationDetails",
      "http://www.nv5.com/role/ReportableSegmentsSummarizedFinancialInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "auth_ref": [
      "r21",
      "r102",
      "r177",
      "r199",
      "r200",
      "r201",
      "r217",
      "r218",
      "r219",
      "r224",
      "r233",
      "r235",
      "r268",
      "r320",
      "r421",
      "r490",
      "r491",
      "r492",
      "r521",
      "r522",
      "r560",
      "r579",
      "r580",
      "r581",
      "r582",
      "r583",
      "r584",
      "r619",
      "r644",
      "r645",
      "r646"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by component of equity.",
        "label": "Equity Components [Axis]",
        "terseLabel": "Equity Components [Axis]"
       }
      }
     },
     "localname": "StatementEquityComponentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.",
        "label": "Statement [Line Items]",
        "terseLabel": "Statement [Line Items]"
       }
      }
     },
     "localname": "StatementLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Cash Flows [Abstract]",
        "terseLabel": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "localname": "StatementOfCashFlowsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Financial Position [Abstract]",
        "terseLabel": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "localname": "StatementOfFinancialPositionAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Statement of Stockholders' Equity [Abstract]",
        "terseLabel": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "localname": "StatementOfStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementTable": {
     "auth_ref": [
      "r217",
      "r218",
      "r219",
      "r268",
      "r627"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Schedule reflecting a Statement of Income, Statement of Cash Flows, Statement of Financial Position, Statement of Shareholders' Equity and Other Comprehensive Income, or other statement as needed.",
        "label": "Statement [Table]",
        "terseLabel": "Statement [Table]"
       }
      }
     },
     "localname": "StatementTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockIssued1": {
     "auth_ref": [
      "r49",
      "r50",
      "r51"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The fair value of stock issued in noncash financing activities.",
        "label": "Stock Issued",
        "terseLabel": "Stock issuance for acquisitions"
       }
      }
     },
     "localname": "StockIssued1",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesAcquisitions": {
     "auth_ref": [
      "r5",
      "r6",
      "r109"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares of stock issued during the period pursuant to acquisitions.",
        "label": "Stock Issued During Period, Shares, Acquisitions",
        "terseLabel": "Stock issuance for acquisitions (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesAcquisitions",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesNewIssues": {
     "auth_ref": [
      "r5",
      "r6",
      "r102",
      "r109"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of new stock issued during the period.",
        "label": "Stock Issued During Period, Shares, New Issues",
        "terseLabel": "Proceeds from secondary offering, net of costs (in shares)",
        "verboseLabel": "Proceeds from secondary offering, net of costs (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesNewIssues",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY",
      "http://www.nv5.com/role/StockholdersEquityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesOther": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares of stock issued attributable to transactions classified as other.",
        "label": "Stock Issued During Period, Shares, Other",
        "terseLabel": "Payment of contingent consideration with common stock (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesOther",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures": {
     "auth_ref": [
      "r5",
      "r6",
      "r102",
      "r109"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of shares issued during the period related to Restricted Stock Awards, net of any shares forfeited.",
        "label": "Stock Issued During Period, Shares, Restricted Stock Award, Net of Forfeitures",
        "terseLabel": "Restricted stock issuance, net (in shares)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueNewIssues": {
     "auth_ref": [
      "r5",
      "r6",
      "r102",
      "r109"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Equity impact of the value of new stock issued during the period. Includes shares issued in an initial public offering or a secondary public offering.",
        "label": "Stock Issued During Period, Value, New Issues",
        "terseLabel": "Proceeds from secondary offering, net of costs"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueNewIssues",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueOther": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of shares of stock issued attributable to transactions classified as other.",
        "label": "Stock Issued During Period, Value, Other",
        "terseLabel": "Payment of contingent consideration with common stock"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueOther",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures": {
     "auth_ref": [
      "r102",
      "r109"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Value of stock related to Restricted Stock Awards issued during the period, net of the stock value of such awards forfeited.",
        "label": "Stock Issued During Period, Value, Restricted Stock Award, Net of Forfeitures",
        "terseLabel": "Restricted stock issuance, net"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquity": {
     "auth_ref": [
      "r6",
      "r9",
      "r10",
      "r75",
      "r697",
      "r718",
      "r729",
      "r791"
     ],
     "calculation": {
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Total of all stockholders' equity (deficit) items, net of receivables from officers, directors, owners, and affiliates of the entity which are attributable to the parent. The amount of the economic entity's stockholders' equity attributable to the parent excludes the amount of stockholders' equity which is allocable to that ownership interest in subsidiary equity which is not attributable to the parent (noncontrolling interest, minority interest). This excludes temporary equity and is sometimes called permanent equity.",
        "label": "Stockholders' Equity Attributable to Parent",
        "periodEndLabel": "Balance",
        "periodStartLabel": "Balance",
        "totalLabel": "Total stockholders\u2019 equity"
       }
      }
     },
     "localname": "StockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCHANGESINSTOCKHOLDERSEQUITY"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Stockholders' Equity Attributable to Parent [Abstract]",
        "terseLabel": "Stockholders\u2019 equity:"
       }
      }
     },
     "localname": "StockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockholdersEquityNoteDisclosureTextBlock": {
     "auth_ref": [
      "r110",
      "r212",
      "r406",
      "r408",
      "r409",
      "r410",
      "r411",
      "r412",
      "r413",
      "r414",
      "r415",
      "r416",
      "r417",
      "r419",
      "r421",
      "r550"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for shareholders' equity comprised of portions attributable to the parent entity and noncontrolling interest, including other comprehensive income. Includes, but is not limited to, balances of common stock, preferred stock, additional paid-in capital, other capital and retained earnings, accumulated balance for each classification of other comprehensive income and amount of comprehensive income.",
        "label": "Stockholders' Equity Note Disclosure [Text Block]",
        "terseLabel": "Stockholders' Equity"
       }
      }
     },
     "localname": "StockholdersEquityNoteDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockholdersEquity"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SubsequentEventLineItems": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event.",
        "label": "Subsequent Event [Line Items]",
        "terseLabel": "Subsequent Event [Line Items]"
       }
      }
     },
     "localname": "SubsequentEventLineItems",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventMember": {
     "auth_ref": [
      "r585",
      "r622"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event [Member]",
        "terseLabel": "Subsequent Event"
       }
      }
     },
     "localname": "SubsequentEventMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventTable": {
     "auth_ref": [
      "r585",
      "r622"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Discloses pertinent information about one or more significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued.",
        "label": "Subsequent Event [Table]",
        "terseLabel": "Subsequent Event [Table]"
       }
      }
     },
     "localname": "SubsequentEventTable",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "auth_ref": [
      "r585",
      "r622"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event Type [Axis]",
        "terseLabel": "Subsequent Event Type [Axis]"
       }
      }
     },
     "localname": "SubsequentEventTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "auth_ref": [
      "r585",
      "r622"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued.",
        "label": "Subsequent Event Type [Domain]",
        "terseLabel": "Subsequent Event Type [Domain]"
       }
      }
     },
     "localname": "SubsequentEventTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SubsequentEventsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SubsequentEventsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Subsequent Events [Abstract]",
        "terseLabel": "Subsequent Events [Abstract]"
       }
      }
     },
     "localname": "SubsequentEventsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "xbrltype": "stringItemType"
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "auth_ref": [
      "r621",
      "r623"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.",
        "label": "Subsequent Events [Text Block]",
        "terseLabel": "Subsequent Events"
       }
      }
     },
     "localname": "SubsequentEventsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SubsequentEvents"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SubsidiarySaleOfStockAxis": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by type of sale of the entity's stock.",
        "label": "Sale of Stock [Axis]",
        "terseLabel": "Sale of Stock [Axis]"
       }
      }
     },
     "localname": "SubsidiarySaleOfStockAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/StockholdersEquityDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_SupplementalCashFlowInformationAbstract": {
     "auth_ref": [],
     "lang": {
      "en-us": {
       "role": {
        "label": "Supplemental Cash Flow Information [Abstract]",
        "terseLabel": "Supplemental disclosures of cash flow information:",
        "verboseLabel": "Supplemental Cash Flow Information"
       }
      }
     },
     "localname": "SupplementalCashFlowInformationAbstract",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://www.nv5.com/role/LeasesScheduleofSupplementalCashFlowInformationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TimingOfTransferOfGoodOrServiceAxis": {
     "auth_ref": [
      "r688",
      "r754"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Information by timing of transfer of good or service to customer.",
        "label": "Timing of Transfer of Good or Service [Axis]",
        "terseLabel": "Timing of Transfer of Good or Service [Axis]"
       }
      }
     },
     "localname": "TimingOfTransferOfGoodOrServiceAxis",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TimingOfTransferOfGoodOrServiceDomain": {
     "auth_ref": [
      "r688",
      "r754"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Timing of transfer of good or service to customer. Includes, but is not limited to, at point in time or over time.",
        "label": "Timing of Transfer of Good or Service [Domain]",
        "terseLabel": "Timing of Transfer of Good or Service [Domain]"
       }
      }
     },
     "localname": "TimingOfTransferOfGoodOrServiceDomain",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TradeNamesMember": {
     "auth_ref": [
      "r130"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Rights acquired through registration of a business name to gain or protect exclusive use thereof.",
        "label": "Trade Names [Member]",
        "terseLabel": "Trade name",
        "verboseLabel": "Trade name"
       }
      }
     },
     "localname": "TradeNamesMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/BusinessAcquisitionsSummaryoftheFairValuesofAssetsAcquiredandLiabilitiesAssumedDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsScheduleofFinitelivedIntangibleAssetsDetails",
      "http://www.nv5.com/role/GoodwillandIntangibleAssetsWeightedAverageUsefulLivesofIntangibleAssetsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TransferredAtPointInTimeMember": {
     "auth_ref": [
      "r688"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contract with customer in which good or service is transferred at point in time.",
        "label": "Transferred at Point in Time [Member]",
        "terseLabel": "Transferred at point in time"
       }
      }
     },
     "localname": "TransferredAtPointInTimeMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TransferredOverTimeMember": {
     "auth_ref": [
      "r688"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Contract with customer in which good or service is transferred over time.",
        "label": "Transferred over Time [Member]",
        "terseLabel": "Transferred over time"
       }
      }
     },
     "localname": "TransferredOverTimeMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesNarrativeDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TypeOfAdoptionMember": {
     "auth_ref": [
      "r175",
      "r176",
      "r177",
      "r178",
      "r179",
      "r223",
      "r224",
      "r225",
      "r227",
      "r236",
      "r312",
      "r313",
      "r317",
      "r318",
      "r319",
      "r320",
      "r323",
      "r324",
      "r490",
      "r491",
      "r492",
      "r519",
      "r520",
      "r521",
      "r522",
      "r539",
      "r540",
      "r541",
      "r551",
      "r552",
      "r553",
      "r554",
      "r555",
      "r556",
      "r557",
      "r559",
      "r560",
      "r561",
      "r562",
      "r563",
      "r568",
      "r569",
      "r570",
      "r571",
      "r572",
      "r573",
      "r577",
      "r578",
      "r586",
      "r587",
      "r591",
      "r592",
      "r593",
      "r594",
      "r613",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r629",
      "r630",
      "r631",
      "r642",
      "r643",
      "r644",
      "r645",
      "r646",
      "r647",
      "r648",
      "r649",
      "r650",
      "r651",
      "r652",
      "r653"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amendment to accounting standards.",
        "label": "Accounting Standards Update [Domain]",
        "terseLabel": "Accounting Standards Update [Domain]"
       }
      }
     },
     "localname": "TypeOfAdoptionMember",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/RecentlyIssuedAccountingPronouncementsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_UnrecognizedTaxBenefits": {
     "auth_ref": [
      "r496",
      "r505"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of unrecognized tax benefits.",
        "label": "Unrecognized Tax Benefits",
        "periodEndLabel": "Balance, end of period",
        "periodStartLabel": "Balance, beginning of period",
        "terseLabel": "Unrecognized tax benefits"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefits",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNarrativeDetails",
      "http://www.nv5.com/role/IncomeTaxesUnrecognizedTaxLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions": {
     "auth_ref": [
      "r506"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.",
        "label": "Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions",
        "negatedLabel": "Reductions for positions of prior years"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesUnrecognizedTaxLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": {
     "auth_ref": [
      "r504"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued",
        "terseLabel": "Income tax penalties and interest accrued"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": {
     "auth_ref": [
      "r507"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions that have been or will be taken in current period tax return.",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions",
        "terseLabel": "Additions based on tax positions related to the current year"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesUnrecognizedTaxLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions": {
     "auth_ref": [
      "r506"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions",
        "terseLabel": "Additions for tax positions of prior years"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesUnrecognizedTaxLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations": {
     "auth_ref": [
      "r508"
     ],
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations.",
        "label": "Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations",
        "negatedTerseLabel": "Lapse of statute of limitations"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesUnrecognizedTaxLiabilityDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate": {
     "auth_ref": [
      "r509"
     ],
     "crdr": "credit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The total amount of unrecognized tax benefits that, if recognized, would affect the effective tax rate.",
        "label": "Unrecognized Tax Benefits that Would Impact Effective Tax Rate",
        "terseLabel": "Unrecognized tax benefits that would impact effective tax rate"
       }
      }
     },
     "localname": "UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/IncomeTaxesNarrativeDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UseOfEstimates": {
     "auth_ref": [
      "r61",
      "r62",
      "r63",
      "r270",
      "r271",
      "r273",
      "r274"
     ],
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.",
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "terseLabel": "Use of Estimates"
       }
      }
     },
     "localname": "UseOfEstimates",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_VariableLeaseCost": {
     "auth_ref": [
      "r605",
      "r696"
     ],
     "calculation": {
      "http://www.nv5.com/role/LeasesScheduleofLeaseCostDetails": {
       "order": 4.0,
       "parentTag": "us-gaap_LeaseCost",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Amount of variable lease cost, excluded from lease liability, recognized when obligation for payment is incurred for finance and operating leases.",
        "label": "Variable Lease, Cost",
        "terseLabel": "Variable operating lease cost"
       }
      }
     },
     "localname": "VariableLeaseCost",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/LeasesScheduleofLeaseCostDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "auth_ref": [
      "r241",
      "r262"
     ],
     "calculation": {
      "http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.",
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "totalLabel": "Diluted weighted average shares outstanding (in shares)",
        "verboseLabel": "Diluted (in shares)"
       }
      }
     },
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME",
      "http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "auth_ref": [
      "r239",
      "r262"
     ],
     "calculation": {
      "http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails": {
       "order": 1.0,
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0
      }
     },
     "lang": {
      "en-us": {
       "role": {
        "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.",
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "terseLabel": "Basic weighted average shares outstanding (in shares)",
        "verboseLabel": "Basic (in shares)"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "nsuri": "http://fasb.org/us-gaap/2022",
     "presentation": [
      "http://www.nv5.com/role/CONSOLIDATEDSTATEMENTSOFNETINCOMEANDCOMPREHENSIVEINCOME",
      "http://www.nv5.com/role/EarningsperShareScheduleofEarningsPerShareBasicandDilutedDetails"
     ],
     "xbrltype": "sharesItemType"
    }
   },
   "unitCount": 10
  }
 },
 "std_ref": {
  "r0": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(19))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r1": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(20))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r10": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(31))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r100": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=65888546&loc=d3e21300-112643",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r101": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21553-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r102": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r103": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21475-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r104": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21484-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r105": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21488-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r106": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21506-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r107": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21521-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r108": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21538-112644",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r109": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r11": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(32))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r110": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "505",
   "URI": "https://asc.fasb.org/topic&trid=2208762",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r111": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "710",
   "URI": "https://asc.fasb.org/extlink&oid=6409733&loc=d3e19396-108361",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r112": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r113": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126964447&loc=d3e11149-113907",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r114": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126964447&loc=d3e11178-113907",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r115": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r116": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r117": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r118": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32559-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r119": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32632-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r12": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r120": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r121": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r122": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123586518&loc=d3e961-128460",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r123": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123586518&loc=d3e1043-128460",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r124": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r125": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r126": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1486-128463",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r127": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "37",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123455525&loc=d3e2207-128464",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r128": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4845-128472",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r129": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4845-128472",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r13": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(a),20,24)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r130": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r131": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5263-128473",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r132": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5333-128473",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r133": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=123410050&loc=d3e5333-128473",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r134": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=6911189&loc=d3e6405-128476",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r135": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=6911189&loc=d3e6408-128476",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r136": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126966197&loc=d3e6578-128477",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r137": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "30",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126966197&loc=d3e6613-128477",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r138": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126966325&loc=d3e6819-128478",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r139": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "30",
   "Subparagraph": "b",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126966325&loc=d3e6819-128478",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r14": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(b),22(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r140": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r141": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)(4)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r142": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r143": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "805",
   "URI": "https://asc.fasb.org/topic&trid=2303972",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r144": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=126929396&loc=d3e5291-111683",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r145": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "810",
   "URI": "https://asc.fasb.org/topic&trid=2197479",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r146": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13531-108611",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r147": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123594938&loc=d3e13537-108611",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r148": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=123444420&loc=d3e33268-110906",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r149": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28541-108399",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r15": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19-26)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r150": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28551-108399",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r151": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28555-108399",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r152": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=114775985&loc=d3e28878-108400",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r153": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "20",
   "Topic": "940",
   "URI": "https://asc.fasb.org/extlink&oid=126941158&loc=d3e41242-110953",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r154": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(11))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r155": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(13))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r156": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(15)(2))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r157": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(16))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r158": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(23))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r159": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03.17)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r16": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.20)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r160": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(15))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r161": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(22))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r162": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04.9)",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r163": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "470",
   "Subparagraph": "e",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=123599511&loc=d3e64711-112823",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r164": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "470",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=123599511&loc=d3e64711-112823",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r165": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126941378&loc=d3e61044-112788",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r166": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(15)(b)(2))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r167": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(16))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r168": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(12))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r169": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(16))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r17": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.21)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r170": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(23)(a)(4))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r171": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(25))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r172": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03.(a),19)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126734703&loc=d3e572229-122910",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r173": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(18))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r174": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(8))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r175": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r176": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r177": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r178": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r179": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r18": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.22)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r180": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "105",
   "URI": "https://asc.fasb.org/extlink&oid=126987489&loc=SL124442142-165695",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r181": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "205",
   "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=d3e1361-107760",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r182": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "205",
   "URI": "https://asc.fasb.org/extlink&oid=109222650&loc=SL51721683-107760",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r183": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r184": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6904-107765",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r185": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r186": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(15))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r187": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(16))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r188": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(17))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r189": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(18))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r19": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.24)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r190": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(27)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r191": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r192": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r193": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(3)(a)(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r194": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(4))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r195": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(9))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r196": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669619-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r197": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126968391&loc=SL7669625-108580",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r198": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL116659661-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r199": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442407-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r2": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(22))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r20": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.25)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r200": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124442411-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r201": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=124431353&loc=SL124452729-227067",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r202": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(210.5-03(11))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r203": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(25))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r204": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(5))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r205": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r206": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3367-108585",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r207": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r208": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r209": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4297-108586",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r21": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29-31)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r210": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18726-107790",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r211": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(c))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r212": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(e)(1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r213": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r214": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(2))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r215": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r216": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-04(a))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24072-122690",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r217": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r218": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r219": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r22": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.3,4)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r220": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21728-107793",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r221": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r222": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r223": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r224": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(3)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r225": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(4)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r226": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r227": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r228": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r229": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22694-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r23": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(1))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r230": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22583-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r231": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22595-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r232": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r233": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22644-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r234": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22658-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r235": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22663-107794",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r236": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.M.Q2)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=122038215&loc=d3e31137-122693",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r237": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=122038215&loc=SL108384541-122693",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r238": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "250",
   "URI": "https://asc.fasb.org/topic&trid=2122394",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r239": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1448-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r24": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(10))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r240": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1377-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r241": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1505-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r242": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1252-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r243": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1707-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r244": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1757-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r245": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "26",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1828-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r246": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1500-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r247": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1930-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r248": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1930-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r249": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)(2)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1930-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r25": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(20))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r250": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)(3)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1930-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r251": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "44",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2062-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r252": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "48",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2538-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r253": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "48",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2538-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r254": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "51",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2574-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r255": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "52",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2597-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r256": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "53",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2600-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r257": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "54",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e2603-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r258": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r259": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r26": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(8))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r260": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "60B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=SL5780133-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r261": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=126958026&loc=d3e1337-109256",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r262": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r263": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r264": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3630-109257",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r265": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=109243012&loc=SL65017193-207537",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r266": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e3842-109258",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r267": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "260",
   "URI": "https://asc.fasb.org/topic&trid=2144383",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r268": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70191-108054",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r269": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=6373374&loc=d3e70434-108055",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r27": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1,2)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r270": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r271": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r272": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e5967-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r273": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6161-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r274": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6191-108592",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r275": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8657-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r276": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8721-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r277": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8721-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r278": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r279": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r28": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.2)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r280": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r281": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r282": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r283": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r284": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r285": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r286": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(j)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r287": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r288": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8813-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r289": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8813-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r29": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.3)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r290": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "26",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8844-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r291": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r292": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r293": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r294": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r295": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r296": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r297": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r298": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r299": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r3": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(26)(a))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r30": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.4)",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r300": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r301": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "32",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8933-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r302": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "34",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8981-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r303": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9031-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r304": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r305": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r306": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r307": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "42",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9054-108599",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r308": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "280",
   "URI": "https://asc.fasb.org/topic&trid=2134510",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r309": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4428-111522",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r31": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3179-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r310": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=124259787&loc=d3e4531-111522",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r311": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=d3e5074-111524",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r312": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r313": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r314": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(d)(1)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r315": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(d)(2)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=126986314&loc=SL124402458-218513",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r316": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "323",
   "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r317": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r318": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r319": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r32": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r320": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r321": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r322": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r323": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r324": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(4)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=122640432&loc=SL121648383-210437",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r325": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255206&loc=SL82895884-210446",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r326": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r327": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r328": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r329": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r33": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3213-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r330": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=99380562&loc=d3e13770-109266",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r331": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r332": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r333": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r334": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r335": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r336": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r337": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r338": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r339": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r34": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3255-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r340": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=SL108378252-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r341": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r342": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r343": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r344": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r345": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r346": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r347": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2941-110230",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r348": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r349": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=6394359&loc=d3e17939-110869",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r35": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3255-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r350": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.P.4(d))",
   "Topic": "420",
   "URI": "https://asc.fasb.org/extlink&oid=115931487&loc=d3e140904-122747",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r351": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "440",
   "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r352": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "440",
   "URI": "https://asc.fasb.org/extlink&oid=123406679&loc=d3e25336-109308",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r353": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14326-108349",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r354": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r355": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14435-108349",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r356": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r357": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=121557415&loc=d3e14557-108349",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r358": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q2)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r359": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Subparagraph": "(SAB Topic 5.Y.Q4)",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=27011672&loc=d3e149879-122751",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r36": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r360": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "450",
   "URI": "https://asc.fasb.org/subtopic&trid=2127163",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r361": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "450",
   "URI": "https://asc.fasb.org/extlink&oid=6397426&loc=d3e17499-108355",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r362": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "30",
   "Topic": "450",
   "URI": "https://asc.fasb.org/subtopic&trid=2127197",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r363": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(i))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r364": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r365": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii)(B))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r366": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iv))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r367": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(5))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r368": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(i))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r369": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r37": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r370": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(A))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r371": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r372": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(B))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r373": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iii)(C))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r374": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(4)(iv))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r375": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-02(a)(5))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442552-122756",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r376": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r377": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r378": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r379": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r38": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r380": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r381": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r382": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r383": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(i)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r384": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r385": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r386": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r387": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1C",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495334-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r388": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r389": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r39": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3291-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r390": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r391": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r392": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r393": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r394": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1E",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495348-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r395": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r396": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r397": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r398": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1F",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495355-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r399": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r4": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(26)(b))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r40": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3521-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r400": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r401": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r402": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1I",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495371-112611",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r403": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466204&loc=SL6031897-161870",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r404": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466204&loc=SL6031897-161870",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r405": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r406": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r407": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r408": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(g)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r409": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r41": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r410": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r411": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r412": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r413": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r414": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496171-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r415": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496180-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r416": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r417": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r418": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r419": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496189-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r42": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3536-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r420": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=d3e21463-112644",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r421": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.3-04)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=120397183&loc=d3e187085-122770",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r422": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130531-203044",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r423": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130532-203044",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r424": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130533-203044",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r425": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r426": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)(1)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130556-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r427": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130561-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r428": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130563-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r429": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130563-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r43": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r430": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130564-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r431": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r432": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r433": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r434": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130566-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r435": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130543-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r436": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130545-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r437": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130549-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r438": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130549-203045",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r439": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "606",
   "URI": "https://asc.fasb.org/topic&trid=49130388",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r44": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r440": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(i)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r441": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iii)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r442": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(iv)(03)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r443": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(l)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r444": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(o)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r445": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(p)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r446": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(q)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r447": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(r)(1)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r448": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(r)(2)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123447040&loc=d3e1928-114920",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r449": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=21916913&loc=d3e273930-122802",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r45": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r450": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "60",
   "Subparagraph": "(c)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=6414203&loc=d3e39689-114964",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r451": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "70",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=49170846&loc=d3e28014-114942",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r452": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(d)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450657-114947",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r453": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "715",
   "URI": "https://asc.fasb.org/topic&trid=2235017",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r454": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=SL116886442-113899",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r455": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=d3e4534-113899",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r456": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126961718&loc=d3e4549-113899",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r457": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=126962052&loc=d3e4991-113900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r458": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r459": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r46": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3044-108585",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r460": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r461": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r462": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r463": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r464": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r465": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r466": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r467": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r468": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r469": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r47": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4273-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r470": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r471": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r472": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r473": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r474": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r475": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r476": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r477": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r478": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r479": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r48": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4297-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r480": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r481": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r482": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r483": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r484": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(v)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r485": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r486": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r487": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r488": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r489": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(l)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r49": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4304-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r490": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r491": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r492": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128097895&loc=SL121327923-165333",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r493": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "718",
   "URI": "https://asc.fasb.org/topic&trid=2228938",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r494": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "35",
   "Subparagraph": "(a)",
   "Topic": "720",
   "URI": "https://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r495": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "35",
   "Subparagraph": "(b)",
   "Topic": "720",
   "URI": "https://asc.fasb.org/extlink&oid=6420018&loc=d3e36677-107848",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r496": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=SL37586934-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r497": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32247-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r498": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e32280-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r499": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31917-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r5": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(28))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r50": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4313-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r500": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123427490&loc=d3e31931-109318",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r501": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32672-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r502": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r503": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32705-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r504": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32718-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r505": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r506": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r507": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r508": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(4)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r509": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r51": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=d3e4332-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r510": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32809-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r511": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32840-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r512": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r513": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r514": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32847-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r515": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32857-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r516": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r517": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r518": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r519": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r52": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126999549&loc=SL98516268-108586",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r520": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r521": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r522": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(3)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r523": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r524": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r525": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126983759&loc=SL121830611-158277",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r526": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.5.Q1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r527": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r528": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.1)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r529": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.Fact.2)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r53": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "235",
   "URI": "https://asc.fasb.org/topic&trid=2122369",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r530": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.C)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330215-122817",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r531": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=123586238&loc=d3e38679-109324",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r532": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "270",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=6424409&loc=d3e44925-109338",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r533": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=6424122&loc=d3e41874-109331",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r534": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "740",
   "URI": "https://asc.fasb.org/topic&trid=2144680",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r535": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(2)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r536": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(3)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r537": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4946-128472",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r538": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092470&loc=d3e4946-128472",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r539": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r54": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124431687&loc=d3e22499-107794",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r540": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r541": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=128092918&loc=SL128093175-196984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r542": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)(1)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r543": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(b)(3)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r544": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)(1)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e6927-128479",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r545": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=126975305&loc=d3e7008-128479",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r546": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r547": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=116870748&loc=SL6758485-165988",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r548": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bb)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r549": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "810",
   "URI": "https://asc.fasb.org/extlink&oid=123419778&loc=d3e5710-111685",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r55": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "250",
   "URI": "https://asc.fasb.org/topic&trid=2122394",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r550": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126731327&loc=SL126733271-114008",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r551": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)(1)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r552": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)(2)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r553": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r554": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)(1)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r555": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)(2)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r556": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(c)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r557": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r558": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(1)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r559": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(2)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r56": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r560": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r561": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(4)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r562": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r563": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r564": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(c)(1)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r565": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(c)(2)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r566": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(c)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL126732908-238011",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r567": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r568": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL120254526-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r569": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL120254526-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r57": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r570": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r571": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r572": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r573": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r574": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r575": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r576": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(3)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL121967933-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r577": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL122642865-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r578": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=126983955&loc=SL122642865-165497",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r579": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32136-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r58": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r580": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r581": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(b)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r582": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r583": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Subparagraph": "(d)",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=118261656&loc=d3e32211-110900",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r584": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32583-110901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r585": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "830",
   "URI": "https://asc.fasb.org/extlink&oid=6450520&loc=d3e32618-110901",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r586": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "832",
   "URI": "https://asc.fasb.org/extlink&oid=128342835&loc=SL128342857-244232",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r587": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "832",
   "URI": "https://asc.fasb.org/extlink&oid=128342835&loc=SL128342857-244232",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r588": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=6450988&loc=d3e26243-108391",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r589": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=124435984&loc=d3e28555-108399",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r59": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r590": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "https://asc.fasb.org/extlink&oid=124429444&loc=SL124452920-239629",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r591": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r592": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r593": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r594": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r595": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(1)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r596": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(f)(3)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128293352&loc=SL126838806-209984",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r597": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r598": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r599": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918631-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r6": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(29))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r60": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6404-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r600": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918638-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r601": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r602": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918643-209977",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r603": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r604": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r605": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r606": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(1)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r607": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(2)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r608": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(3)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r609": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)(4)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r61": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6061-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r610": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r611": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918701-209980",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r612": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/subtopic&trid=77888251",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r613": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL122150809-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r614": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL122150809-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r615": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r616": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r617": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r618": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(01)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r619": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)(iii)(03)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r62": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6132-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r620": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "848",
   "URI": "https://asc.fasb.org/extlink&oid=125980421&loc=SL125981372-237846",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r621": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "855",
   "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r622": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "855",
   "URI": "https://asc.fasb.org/extlink&oid=6842918&loc=SL6314017-165662",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r623": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "855",
   "URI": "https://asc.fasb.org/topic&trid=2122774",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r624": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r625": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "910",
   "URI": "https://asc.fasb.org/extlink&oid=126937589&loc=SL119991595-234733",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r626": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "310",
   "Subparagraph": "(b)",
   "Topic": "912",
   "URI": "https://asc.fasb.org/extlink&oid=126938201&loc=d3e55415-109406",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r627": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 11.L)",
   "Topic": "924",
   "URI": "https://asc.fasb.org/extlink&oid=6472922&loc=d3e499488-122856",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r628": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154696&loc=d3e54445-107959",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r629": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r63": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6143-108592",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r630": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r631": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r632": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(f)(1)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r633": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(f)(2)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r634": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "20",
   "Subparagraph": "(f)(3)",
   "Topic": "926",
   "URI": "https://asc.fasb.org/extlink&oid=120154821&loc=SL120154904-197079",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r635": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "340",
   "Topic": "928",
   "URI": "https://asc.fasb.org/extlink&oid=6473545&loc=d3e61844-108004",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r636": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(10)(1))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=126897435&loc=d3e534808-122878",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r637": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.9-04(27))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399700&loc=SL114874048-224260",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r638": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "235",
   "Subparagraph": "(SX 210.9-05(b)(2))",
   "Topic": "942",
   "URI": "https://asc.fasb.org/extlink&oid=120399901&loc=d3e537907-122884",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r639": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(23))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r64": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "275",
   "URI": "https://asc.fasb.org/topic&trid=2134479",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r640": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "220",
   "Subparagraph": "(SX 210.7-04(9))",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=120400993&loc=SL114874131-224263",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r641": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Subparagraph": "(d)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124506351&loc=SL117782755-158439",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r642": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(a)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r643": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(b)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r644": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r645": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(1)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r646": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(f)(2)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r647": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(1)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r648": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(i)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r649": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(ii)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r65": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "22",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8736-108599",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r650": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(iii)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r651": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(g)(2)(iv)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r652": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(1)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r653": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(h)(2)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=124501264&loc=SL117420844-207641",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r654": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=123600520&loc=SL75241803-196195",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r655": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "310",
   "Subparagraph": "(SX 210.12-29(Footnote 4))",
   "Topic": "948",
   "URI": "https://asc.fasb.org/extlink&oid=120402547&loc=d3e617274-123014",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r656": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Topic": "954",
   "URI": "https://asc.fasb.org/extlink&oid=126942805&loc=d3e3115-115594",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r657": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "440",
   "Subparagraph": "(a)",
   "Topic": "954",
   "URI": "https://asc.fasb.org/extlink&oid=6491277&loc=d3e6429-115629",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r658": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Subparagraph": "(d)",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99779-112916",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r659": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=d3e99893-112916",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r66": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8813-108599",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r660": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "360",
   "Topic": "958",
   "URI": "https://asc.fasb.org/extlink&oid=126982197&loc=SL120174063-112916",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r661": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column B))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r662": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column C))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r663": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column D))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r664": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column E))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r665": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column F))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r666": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column G))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r667": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column H))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r668": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Column I))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r669": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28(Footnote 2))",
   "Topic": "970",
   "URI": "https://asc.fasb.org/extlink&oid=120402810&loc=d3e638233-123024",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r67": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r670": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(c)",
   "Topic": "976",
   "URI": "https://asc.fasb.org/extlink&oid=6497875&loc=d3e22274-108663",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r671": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(b)",
   "Topic": "978",
   "URI": "https://asc.fasb.org/extlink&oid=126945304&loc=d3e27327-108691",
   "role": "http://www.xbrl.org/2003/role/disclosureRef"
  },
  "r672": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=124098289&loc=d3e6676-107765",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r673": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=126899994&loc=d3e18823-107790",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r674": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "52",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=128363288&loc=d3e4984-109258",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r675": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r676": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r677": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124267575&loc=SL82921835-210448",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r678": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=122137925&loc=d3e14258-109268",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r679": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r68": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r680": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69B",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495735-112612",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r681": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69C",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495737-112612",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r682": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69E",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495743-112612",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r683": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "69F",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466577&loc=SL123495745-112612",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r684": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "505",
   "URI": "https://asc.fasb.org/extlink&oid=126973232&loc=SL123496158-112644",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r685": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r686": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r687": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r688": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920602&loc=SL49130690-203046-203046",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r689": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=123450688&loc=d3e4179-114921",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r69": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "31",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8924-108599",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r690": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450702-114947",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r691": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "80",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=65877416&loc=SL14450673-114947",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r692": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "80",
   "Topic": "715",
   "URI": "https://asc.fasb.org/extlink&oid=35742348&loc=SL14450788-114948",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r693": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r694": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r695": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "217",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=126976462&loc=d3e36027-109320",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r696": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "53",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123414884&loc=SL77918982-209971",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r697": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=84165509&loc=d3e56426-112766",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r698": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(b)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r699": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "29F",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117819544-158441",
   "role": "http://www.xbrl.org/2003/role/exampleRef"
  },
  "r7": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(1))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r70": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8475-108599",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r700": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r701": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-2",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r702": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "b-23",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r703": {
   "Name": "Exchange Act",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12",
   "Subsection": "d1-1",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r704": {
   "Name": "Form 10-K",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "310",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r705": {
   "Name": "Form 20-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "220",
   "Subsection": "f",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r706": {
   "Name": "Form 40-F",
   "Number": "249",
   "Publisher": "SEC",
   "Section": "240",
   "Subsection": "f",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r707": {
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "13",
   "Subsection": "a-1",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r708": {
   "Name": "Regulation S-T",
   "Number": "232",
   "Publisher": "SEC",
   "Section": "405",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r709": {
   "Name": "Securities Act",
   "Number": "230",
   "Publisher": "SEC",
   "Section": "405",
   "role": "http://www.xbrl.org/2003/role/presentationRef"
  },
  "r71": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9031-108599",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r710": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "272",
   "URI": "https://asc.fasb.org/extlink&oid=125520817&loc=d3e70229-108054",
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef"
  },
  "r711": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(18))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r712": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(9))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r713": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(b)(2))",
   "Topic": "220",
   "URI": "https://asc.fasb.org/extlink&oid=126953954&loc=SL114868664-224227",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r714": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r715": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "https://asc.fasb.org/extlink&oid=126954810&loc=d3e3602-108585",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r716": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(d))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r717": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(f))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r718": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(g)(1)(ii))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r719": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08(h)(1)(Note 1))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e23780-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r72": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "a",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r720": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-04(a))",
   "Topic": "235",
   "URI": "https://asc.fasb.org/extlink&oid=120395691&loc=d3e24072-122690",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r721": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "23",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21914-107793",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r722": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21930-107793",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r723": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "250",
   "URI": "https://asc.fasb.org/extlink&oid=124436220&loc=d3e21711-107793",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r724": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "https://asc.fasb.org/extlink&oid=124432515&loc=d3e3550-109257",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r725": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "https://asc.fasb.org/extlink&oid=99393423&loc=d3e6351-108592",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r726": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8672-108599",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r727": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "30",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e8906-108599",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r728": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/subtopic&trid=2196772",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r729": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "323",
   "URI": "https://asc.fasb.org/extlink&oid=114001798&loc=d3e33918-111571",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r73": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "https://asc.fasb.org/extlink&oid=126901519&loc=d3e9038-108599",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r730": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "326",
   "URI": "https://asc.fasb.org/extlink&oid=124255953&loc=SL82919249-210447",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r731": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r732": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r733": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r734": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r735": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(e)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r736": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r737": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(g)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r738": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r739": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r74": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=123577603&loc=SL6953423-111524",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r740": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=SL108378252-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r741": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13854-109267",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r742": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r743": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r744": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r745": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2921-110230",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r746": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(c)",
   "Topic": "410",
   "URI": "https://asc.fasb.org/extlink&oid=6393242&loc=d3e13237-110859",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r747": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "450",
   "URI": "https://asc.fasb.org/topic&trid=2127136",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r748": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(ii))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r749": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.13-01(a)(4)(iii))",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=126975872&loc=SL124442526-122756",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r75": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 4.E)",
   "Topic": "310",
   "URI": "https://asc.fasb.org/extlink&oid=122038336&loc=d3e74512-122707",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r750": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495323-112611",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r751": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1D",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123466505&loc=SL123495340-112611",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r752": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130531-203044",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r753": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126919976&loc=SL49130533-203044",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r754": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "https://asc.fasb.org/extlink&oid=126920106&loc=SL49130545-203045",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r755": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r756": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r757": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r758": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r759": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r76": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=121556970&loc=d3e13816-109267",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r760": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r761": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r762": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r763": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r764": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r765": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(04)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r766": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r767": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r768": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r769": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(01)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r77": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16212-109274",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r770": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(02)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r771": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(2)(iii)(03)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r772": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r773": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r774": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r775": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(2)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r776": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(i)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r777": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(ii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r778": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iii)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r779": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(iv)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r78": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=6388964&loc=d3e16225-109274",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r780": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)(v)",
   "Topic": "718",
   "URI": "https://asc.fasb.org/extlink&oid=128089324&loc=d3e5070-113901",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r781": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32687-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r782": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=SL6600010-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r783": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32537-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r784": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32621-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r785": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r786": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=121826272&loc=d3e32639-109319",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r787": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Topic": "740",
   "URI": "https://asc.fasb.org/extlink&oid=122134291&loc=d3e330036-122817",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r788": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(2)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r789": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(3)",
   "Topic": "805",
   "URI": "https://asc.fasb.org/extlink&oid=79982066&loc=d3e1392-128463",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r79": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r790": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "65",
   "SubTopic": "40",
   "Subparagraph": "(e)(3)",
   "Topic": "815",
   "URI": "https://asc.fasb.org/extlink&oid=126732423&loc=SL123482106-238011",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r791": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "825",
   "URI": "https://asc.fasb.org/extlink&oid=123596393&loc=d3e14064-108612",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r792": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918627-209977",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r793": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918638-209977",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r794": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=123391704&loc=SL77918638-209977",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r795": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r796": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918686-209980",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r797": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "842",
   "URI": "https://asc.fasb.org/extlink&oid=128292326&loc=SL77918701-209980",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r798": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r799": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "852",
   "URI": "https://asc.fasb.org/extlink&oid=124433192&loc=SL2890621-112765",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r8": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30)(a)(3))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r80": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r800": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r801": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r802": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107207-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r803": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(1)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r804": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(2)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r805": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "860",
   "URI": "https://asc.fasb.org/extlink&oid=121570589&loc=d3e107314-111719",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r806": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4H",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "40",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=116884468&loc=SL65671331-158438",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r807": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13H",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "40",
   "Subparagraph": "(c)",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=126561865&loc=SL117783719-158441",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r808": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "825",
   "Topic": "944",
   "URI": "https://asc.fasb.org/extlink&oid=123600520&loc=SL75241803-196195",
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef"
  },
  "r81": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r82": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "((a)(1),(b))",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r83": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r84": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(1)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r85": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(2)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r86": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Subparagraph": "(a)(3)",
   "Topic": "350",
   "URI": "https://asc.fasb.org/extlink&oid=66006027&loc=d3e16323-109275",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r87": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "350",
   "URI": "https://asc.fasb.org/topic&trid=2144416",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r88": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=126905981&loc=d3e2611-110228",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r89": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=126905981&loc=d3e2420-110228",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r9": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(30))",
   "Topic": "210",
   "URI": "https://asc.fasb.org/extlink&oid=120391452&loc=d3e13212-122682",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r90": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r91": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r92": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=6391035&loc=d3e2868-110229",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r93": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2921-110230",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r94": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "https://asc.fasb.org/extlink&oid=109226691&loc=d3e2921-110230",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r95": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "360",
   "URI": "https://asc.fasb.org/topic&trid=2155823",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r96": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "440",
   "URI": "https://asc.fasb.org/topic&trid=2144648",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r97": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "470",
   "URI": "https://asc.fasb.org/extlink&oid=123465755&loc=d3e1835-112601",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r98": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "470",
   "URI": "https://asc.fasb.org/topic&trid=2208564",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  },
  "r99": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(CFRR 211.02)",
   "Topic": "480",
   "URI": "https://asc.fasb.org/extlink&oid=122040564&loc=d3e177068-122764",
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef"
  }
 },
 "version": "2.2"
}
