<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.20.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>379</ContextCount>
  <ElementCount>511</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>91</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>6</UnitCount>
  <MyReports>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000 - Document - Document And Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-document-and-entity-information</Role>
      <ShortName>Document And Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>001 - Statement - Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-consolidated-balance-sheets</Role>
      <ShortName>Consolidated Balance Sheets</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>002 - Statement - Consolidated Balance Sheets (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-consolidated-balance-sheets-parentheticals</Role>
      <ShortName>Consolidated Balance Sheets (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>003 - Statement - Consolidated Statements of Operations</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-consolidated-statements-of-operations-</Role>
      <ShortName>Consolidated Statements of Operations</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>004 - Statement - Consolidated Statements of Comprehensive Income</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-consolidated-statements-of-comprehensive-income</Role>
      <ShortName>Consolidated Statements of Comprehensive Income</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>005 - Statement - Consolidated Statements of Comprehensive Income (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-consolidated-statements-of-comprehensive-income-parentheticals</Role>
      <ShortName>Consolidated Statements of Comprehensive Income (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>006 - Statement - Consolidated Statements of Shareholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-consolidated-statements-of-shareholders-equity</Role>
      <ShortName>Consolidated Statements of Shareholders' Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>007 - Statement - Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-consolidated-statements-of-cash-flows</Role>
      <ShortName>Consolidated Statements of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>008 - Disclosure - Note 1 - Description of the Business</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-1-description-of-the-business</Role>
      <ShortName>Note 1 - Description of the Business</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>009 - Disclosure - Note 2 - Basis of Presentation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-2-basis-of-presentation</Role>
      <ShortName>Note 2 - Basis of Presentation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>010 - Disclosure - Note 3 - Acquisitions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-3-acquisitions</Role>
      <ShortName>Note 3 - Acquisitions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>011 - Disclosure - Note 4 - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-4-fair-value-measurements</Role>
      <ShortName>Note 4 - Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>012 - Disclosure - Note 5 - Trade Receivables</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-5-trade-receivables</Role>
      <ShortName>Note 5 - Trade Receivables</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>013 - Disclosure - Note 6 - Other Receivables</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-6-other-receivables</Role>
      <ShortName>Note 6 - Other Receivables</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>014 - Disclosure - Note 7 - Inventory</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-7-inventory</Role>
      <ShortName>Note 7 - Inventory</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>015 - Disclosure - Note 8 - Property and Equipment</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement--note-8-property-and-equipment-</Role>
      <ShortName>Note 8 - Property and Equipment</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>016 - Disclosure - Note 9 - Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-9-intangible-assets</Role>
      <ShortName>Note 9 - Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>017 - Disclosure - Note 10 - Goodwill</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-10-goodwill</Role>
      <ShortName>Note 10 - Goodwill</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>018 - Disclosure - Note 11 - Accrued Liabilities</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-11-accrued-liabilities</Role>
      <ShortName>Note 11 - Accrued Liabilities</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>019 - Disclosure - Note 12 - Debt</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-12-debt</Role>
      <ShortName>Note 12 - Debt</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>020 - Disclosure - Note 13 - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-13-leases</Role>
      <ShortName>Note 13 - Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>021 - Disclosure - Note 14 - Commitments, Contingencies and Guarantees</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-14-commitments-contingencies-and-guarantees</Role>
      <ShortName>Note 14 - Commitments, Contingencies and Guarantees</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>022 - Disclosure - Note 15 - Share Capital</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-15-share-capital</Role>
      <ShortName>Note 15 - Share Capital</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>023 - Disclosure - Note 16 - Earnings Per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-16-earnings-per-share</Role>
      <ShortName>Note 16 - Earnings Per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>024 - Disclosure - Note 17 - Stock-based Compensation Plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-17-stockbased-compensation-plans</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>025 - Disclosure - Note 18 - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-18-income-taxes</Role>
      <ShortName>Note 18 - Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>026 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs</Role>
      <ShortName>Note 19 - Contract Balances, Performance Obligations and Contract Costs</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>027 - Disclosure - Note 20 - Other Charges</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-20-other-charges</Role>
      <ShortName>Note 20 - Other Charges</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>028 - Disclosure - Note 21 - Supplemental Cash Flow Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-21-supplemental-cash-flow-information</Role>
      <ShortName>Note 21 - Supplemental Cash Flow Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>29</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>029 - Disclosure - Note 22 - Segmented Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-22-segmented-information</Role>
      <ShortName>Note 22 - Segmented Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>030 - Disclosure - Note 23 - Subsequent Event</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-23-subsequent-event-</Role>
      <ShortName>Note 23 - Subsequent Event</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>031 - Disclosure - Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-significant-accounting-policies-policies</Role>
      <ShortName>Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>32</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>032 - Disclosure - Note 3 - Acquisitions (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-3-acquisitions-tables</Role>
      <ShortName>Note 3 - Acquisitions (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-3-acquisitions</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>033 - Disclosure - Note 4 - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-4-fair-value-measurements-tables</Role>
      <ShortName>Note 4 - Fair Value Measurements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-4-fair-value-measurements</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>034 - Disclosure - Note 5 - Trade Receivables (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-5-trade-receivables-tables</Role>
      <ShortName>Note 5 - Trade Receivables (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-5-trade-receivables</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>035 - Disclosure - Note 6 - Other Receivables (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-6-other-receivables-tables</Role>
      <ShortName>Note 6 - Other Receivables (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-6-other-receivables</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>036 - Disclosure - Note 8 - Property and Equipment (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement--note-8-property-and-equipment-tables</Role>
      <ShortName>Note 8 - Property and Equipment (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement--note-8-property-and-equipment-</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>037 - Disclosure - Note 9 - Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-9-intangible-assets-tables</Role>
      <ShortName>Note 9 - Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-9-intangible-assets</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>038 - Disclosure - Note 10 - Goodwill (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-10-goodwill-tables</Role>
      <ShortName>Note 10 - Goodwill (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-10-goodwill</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>039 - Disclosure - Note 11 - Accrued Liabilities (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-11-accrued-liabilities-tables</Role>
      <ShortName>Note 11 - Accrued Liabilities (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-11-accrued-liabilities</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>040 - Disclosure - Note 12 - Debt (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-12-debt-tables</Role>
      <ShortName>Note 12 - Debt (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-12-debt</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>041 - Disclosure - Note 13 - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-13-leases-tables</Role>
      <ShortName>Note 13 - Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-13-leases</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>042 - Disclosure - Note 15 - Share Capital (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-15-share-capital-tables</Role>
      <ShortName>Note 15 - Share Capital (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-15-share-capital</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>043 - Disclosure - Note 16 - Earnings Per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-16-earnings-per-share-tables</Role>
      <ShortName>Note 16 - Earnings Per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-16-earnings-per-share</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>044 - Disclosure - Note 17 - Stock-based Compensation Plans (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-17-stockbased-compensation-plans-tables</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-17-stockbased-compensation-plans</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>045 - Disclosure - Note 18 - Income Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-18-income-taxes-tables</Role>
      <ShortName>Note 18 - Income Taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-18-income-taxes</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>046 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables</Role>
      <ShortName>Note 19 - Contract Balances, Performance Obligations and Contract Costs (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>047 - Disclosure - Note 20 - Other Charges (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-20-other-charges-tables</Role>
      <ShortName>Note 20 - Other Charges (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-20-other-charges</ParentRole>
      <Position>48</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>048 - Disclosure - Note 21 - Supplemental Cash Flow Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-21-supplemental-cash-flow-information-tables</Role>
      <ShortName>Note 21 - Supplemental Cash Flow Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-21-supplemental-cash-flow-information</ParentRole>
      <Position>49</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>049 - Disclosure - Note 22 - Segmented Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-22-segmented-information-tables</Role>
      <ShortName>Note 22 - Segmented Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-22-segmented-information</ParentRole>
      <Position>50</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>050 - Disclosure - Note 2 - Basis of Presentation (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-2-basis-of-presentation-details-textual</Role>
      <ShortName>Note 2 - Basis of Presentation (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-2-basis-of-presentation</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>051 - Disclosure - Note 3 - Acquisitions (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-3-acquisitions-details-textual</Role>
      <ShortName>Note 3 - Acquisitions (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-3-acquisitions-tables</ParentRole>
      <Position>52</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>052 - Disclosure - Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details</Role>
      <ShortName>Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>053 - Disclosure - Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-3-acquisitions-preliminary-purchase-price-allocation-for-businesses-acquired-details-parentheticals</Role>
      <ShortName>Note 3 - Acquisitions - Preliminary Purchase Price Allocation for Businesses Acquired (Details) (Parentheticals)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>054 - Disclosure - Note 3 - Acquisitions - Acquired Intangible Assets Useful Lives (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-3-acquisitions-acquired-intangible-assets-useful-lives-details</Role>
      <ShortName>Note 3 - Acquisitions - Acquired Intangible Assets Useful Lives (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>055 - Disclosure - Note 3 - Acquisitions - Pro Forma Results of Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-3-acquisitions-pro-forma-results-of-operations-details</Role>
      <ShortName>Note 3 - Acquisitions - Pro Forma Results of Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>056 - Disclosure - Note 4 - Fair Value Measurements (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-4-fair-value-measurements-details-textual</Role>
      <ShortName>Note 4 - Fair Value Measurements (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-4-fair-value-measurements-tables</ParentRole>
      <Position>57</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>057 - Disclosure - Note 4 - Fair Value Measurements - Derivative Instruments at Fair Value (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-4-fair-value-measurements-derivative-instruments-at-fair-value-details</Role>
      <ShortName>Note 4 - Fair Value Measurements - Derivative Instruments at Fair Value (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>058 - Disclosure - Note 5 - Trade Receivables (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-5-trade-receivables-details-textual</Role>
      <ShortName>Note 5 - Trade Receivables (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-5-trade-receivables-tables</ParentRole>
      <Position>59</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>059 - Disclosure - Note 5 - Trade Receivables - Trade Receivables (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-5-trade-receivables-trade-receivables-details</Role>
      <ShortName>Note 5 - Trade Receivables - Trade Receivables (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>060 - Disclosure - Note 6 - Other Receivables (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-6-other-receivables-details-textual</Role>
      <ShortName>Note 6 - Other Receivables (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-6-other-receivables-tables</ParentRole>
      <Position>61</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>061 - Disclosure - Note 6 - Other Receivables - Other Receivables (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-6-other-receivables-other-receivables-details</Role>
      <ShortName>Note 6 - Other Receivables - Other Receivables (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>062 - Disclosure - Note 7 - Inventory (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-7-inventory-details-textual</Role>
      <ShortName>Note 7 - Inventory (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-7-inventory</ParentRole>
      <Position>63</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>063 - Disclosure - Note 8 - Property and Equipment - Property and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-8-property-and-equipment-property-and-equipment-details</Role>
      <ShortName>Note 8 - Property and Equipment - Property and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>064 - Disclosure - Note 9 - Intangible Assets (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-9-intangible-assets-details-textual</Role>
      <ShortName>Note 9 - Intangible Assets (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-9-intangible-assets-tables</ParentRole>
      <Position>65</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>065 - Disclosure - Note 9 - Intangible Assets - Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-9-intangible-assets-intangible-assets-details</Role>
      <ShortName>Note 9 - Intangible Assets - Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>066 - Disclosure - Note 10 - Goodwill - Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-10-goodwill-goodwill-details</Role>
      <ShortName>Note 10 - Goodwill - Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>067 - Disclosure - Note 11 - Accrued Liabilities - Accrued Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-11-accrued-liabilities-accrued-liabilities-details</Role>
      <ShortName>Note 11 - Accrued Liabilities - Accrued Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>068 - Disclosure - Note 12 - Debt (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-12-debt-details-textual</Role>
      <ShortName>Note 12 - Debt (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-12-debt-tables</ParentRole>
      <Position>69</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>069 - Disclosure - Note 12 - Debt - Schedule of Long-term Debt (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-12-debt-schedule-of-longterm-debt-details</Role>
      <ShortName>Note 12 - Debt - Schedule of Long-term Debt (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>70</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>070 - Disclosure - Note 13 - Leases (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-13-leases-details-textual</Role>
      <ShortName>Note 13 - Leases (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-13-leases-tables</ParentRole>
      <Position>71</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>071 - Disclosure - Note 13 - Leases - Components of Operating Lease Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-13-leases-components-of-operating-lease-expense-details</Role>
      <ShortName>Note 13 - Leases - Components of Operating Lease Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>072 - Disclosure - Note 13 - Leases - Maturities of Operating Lease Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-13-leases-maturities-of-operating-lease-liabilities-details</Role>
      <ShortName>Note 13 - Leases - Maturities of Operating Lease Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>73</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>073 - Disclosure - Note 13 - Leases - Lease Obligations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-13-leases-lease-obligations-details</Role>
      <ShortName>Note 13 - Leases - Lease Obligations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>074 - Disclosure - Note 14 - Commitments, Contingencies and Guarantees (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-14-commitments-contingencies-and-guarantees-details-textual</Role>
      <ShortName>Note 14 - Commitments, Contingencies and Guarantees (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-14-commitments-contingencies-and-guarantees</ParentRole>
      <Position>75</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>075 - Disclosure - Note 15 - Share Capital (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-15-share-capital-details-textual</Role>
      <ShortName>Note 15 - Share Capital (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-15-share-capital-tables</ParentRole>
      <Position>76</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>076 - Disclosure - Note 15 - Share Capital - Common Shares Outstanding (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-15-share-capital-common-shares-outstanding-details</Role>
      <ShortName>Note 15 - Share Capital - Common Shares Outstanding (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>077 - Disclosure - Note 16 - Earnings Per Share (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-16-earnings-per-share-details-textual</Role>
      <ShortName>Note 16 - Earnings Per Share (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-16-earnings-per-share-tables</ParentRole>
      <Position>78</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>078 - Disclosure - Note 16 - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-16-earnings-per-share-computation-of-basic-and-diluted-earnings-per-share-details</Role>
      <ShortName>Note 16 - Earnings Per Share - Computation of Basic and Diluted Earnings Per Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>79</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>079 - Disclosure - Note 17 - Stock-based Compensation Plans (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-17-stockbased-compensation-plans-details-textual</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-17-stockbased-compensation-plans-tables</ParentRole>
      <Position>80</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>080 - Disclosure - Note 17 - Stock-based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-17-stockbased-compensation-plans-total-estimated-stockbased-compensation-expense-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans - Total Estimated Stock-based Compensation Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>081 - Disclosure - Note 17 - Stock-based Compensation Plans - Assumptions Used in Black-scholes Model for Each Grant (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-17-stockbased-compensation-plans-assumptions-used-in-blackscholes-model-for-each-grant-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans - Assumptions Used in Black-scholes Model for Each Grant (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>82</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>082 - Disclosure - Note 17 -Stock-based Compensation Plans - Summary of Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-17-stockbased-compensation-plans-summary-of-option-activity-details</Role>
      <ShortName>Note 17 -Stock-based Compensation Plans - Summary of Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>083 - Disclosure - Note 17 - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-17-stockbased-compensation-plans-options-outstanding-and-options-exercisable-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans - Options Outstanding and Options Exercisable (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>84</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>084 - Disclosure - Note 17 - Stock-based Compensation Plans - Summary of Nonvested Share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-17-stockbased-compensation-plans-summary-of-nonvested-share-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans - Summary of Nonvested Share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>85</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>085 - Disclosure - Note 17 - Stock-based Compensation Plans Summary of Performance Share Units Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-17-stockbased-compensation-plans-summary-of-performance-share-units-activity-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans Summary of Performance Share Units Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>86</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>086 - Disclosure - Note 17 - Stock-based Compensation Plans - Summary of Restricted Share Units Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-17-stockbased-compensation-plans-summary-of-restricted-share-units-activity-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans - Summary of Restricted Share Units Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>87</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>087 - Disclosure - Note 17 - Stock-based Compensation Plans - Summary of CRSU Plan Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-17-stockbased-compensation-plans-summary-of-crsu-plan-activity-details</Role>
      <ShortName>Note 17 - Stock-based Compensation Plans - Summary of CRSU Plan Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>88</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>088 - Disclosure - Note 18 - Income Taxes (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-18-income-taxes-details-textual</Role>
      <ShortName>Note 18 - Income Taxes (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-18-income-taxes-tables</ParentRole>
      <Position>89</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R90.htm</HtmlFileName>
      <LongName>089 - Disclosure - Note 18 - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-18-income-taxes-income-loss-before-income-taxes-earned-by-tax-jurisdictions-details</Role>
      <ShortName>Note 18 - Income Taxes - Income (Loss) Before Income Taxes Earned by Tax Jurisdictions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>90</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R91.htm</HtmlFileName>
      <LongName>090 - Disclosure - Note 18 - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-18-income-taxes-income-tax-expense-recovery-incurred-by-jurisdictions-details</Role>
      <ShortName>Note 18 - Income Taxes - Income Tax Expense (Recovery) Incurred by Jurisdictions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>91</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R92.htm</HtmlFileName>
      <LongName>091 - Disclosure - Note 18 - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-18-income-taxes-components-of-deferred-income-tax-assets-and-liabilities-details</Role>
      <ShortName>Note 18 - Income Taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>92</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R93.htm</HtmlFileName>
      <LongName>092 - Disclosure - Note 18 - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-18-income-taxes-provision-recovery-for-income-taxes-from-the-expected-provision-at-the-statutory-rates-details</Role>
      <ShortName>Note 18 - Income Taxes - Provision (Recovery) for Income Taxes from the Expected Provision at the Statutory Rates (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>93</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R94.htm</HtmlFileName>
      <LongName>093 - Disclosure - Note 18 - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-18-income-taxes-income-tax-loss-carryforwards-expiration-dates-details</Role>
      <ShortName>Note 18 - Income Taxes - Income Tax Loss Carryforwards Expiration Dates (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>94</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R95.htm</HtmlFileName>
      <LongName>094 - Disclosure - Note 18 - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-18-income-taxes-reconciliation-of-the-total-estimated-liability-associated-with-uncertain-tax-provisions-details</Role>
      <ShortName>Note 18 - Income Taxes - Reconciliation of the Total Estimated Liability Associated With Uncertain Tax Provisions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>95</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R96.htm</HtmlFileName>
      <LongName>095 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs 1 (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-1-details-textual</Role>
      <ShortName>Note 19 - Contract Balances, Performance Obligations and Contract Costs 1 (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables</ParentRole>
      <Position>96</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R97.htm</HtmlFileName>
      <LongName>096 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs 2 (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-2-details-textual</Role>
      <ShortName>Note 19 - Contract Balances, Performance Obligations and Contract Costs 2 (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-tables</ParentRole>
      <Position>97</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R98.htm</HtmlFileName>
      <LongName>097 - Disclosure - Note 19 - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-19-contract-balances-performance-obligations-and-contract-costs-changes-in-deferred-revenue-and-contract-assets-details</Role>
      <ShortName>Note 19 - Contract Balances, Performance Obligations and Contract Costs - Changes in Deferred Revenue and Contract Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>98</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R99.htm</HtmlFileName>
      <LongName>098 - Disclosure - Note 20 - Other Charges - Other Charges Included in Consolidated Statements of Operations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-20-other-charges-other-charges-included-in-consolidated-statements-of-operations-details</Role>
      <ShortName>Note 20 - Other Charges - Other Charges Included in Consolidated Statements of Operations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>99</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R100.htm</HtmlFileName>
      <LongName>099 - Disclosure - Note 21 - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-21-supplemental-cash-flow-information-cash-flow-changes-in-operating-asset-and-liabilities-details</Role>
      <ShortName>Note 21 - Supplemental Cash Flow Information - Cash Flow Changes in Operating Asset and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>100</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R101.htm</HtmlFileName>
      <LongName>100 - Disclosure - Note 22 - Segmented Information (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-22-segmented-information-details-textual</Role>
      <ShortName>Note 22 - Segmented Information (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-22-segmented-information-tables</ParentRole>
      <Position>101</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R102.htm</HtmlFileName>
      <LongName>101 - Disclosure - Note 22 - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-22-segmented-information-segmented-revenue-by-geographical-location-of-customer-details</Role>
      <ShortName>Note 22 - Segmented Information - Segmented Revenue by Geographical Location of Customer (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>102</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R103.htm</HtmlFileName>
      <LongName>102 - Disclosure - Note 22 - Segmented Information - Segmented Revenue by Revenue Type (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-22-segmented-information-segmented-revenue-by-revenue-type-details</Role>
      <ShortName>Note 22 - Segmented Information - Segmented Revenue by Revenue Type (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>103</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R104.htm</HtmlFileName>
      <LongName>103 - Disclosure - Note 22 - Segmented Information - Long-lived Assets by Geographical Location (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-22-segmented-information-longlived-assets-by-geographical-location-details</Role>
      <ShortName>Note 22 - Segmented Information - Long-lived Assets by Geographical Location (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>104</Position>
    </Report>
    <Report instance="dsgx-20200131.xml">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R105.htm</HtmlFileName>
      <LongName>104 - Disclosure - Note 23 - Subsequent Event (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.descartes.com/20200131/role/statement-note-23-subsequent-event-details-textual</Role>
      <ShortName>Note 23 - Subsequent Event (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.descartes.com/20200131/role/statement-note-23-subsequent-event-</ParentRole>
      <Position>105</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>dsgx-20200131.xml</File>
    <File>dsgx-20200131.xsd</File>
    <File>dsgx-20200131_cal.xml</File>
    <File>dsgx-20200131_def.xml</File>
    <File>dsgx-20200131_lab.xml</File>
    <File>dsgx-20200131_pre.xml</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy>http://fasb.org/us-gaap/2019-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/country/2017-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://fasb.org/srt/2019-01-31</BaseTaxonomy>
    <BaseTaxonomy>http://xbrl.sec.gov/dei/2019-01-31</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
