<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.23.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>64</ContextCount>
  <ElementCount>175</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>22</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>6</UnitCount>
  <MyReports>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>000 - Document - Document And Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-document-and-entity-information</Role>
      <ShortName>Document And Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>001 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Current Period Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>002 - Statement - Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-condensed-consolidated-balance-sheets-current-period-unaudited-parentheticals</Role>
      <ShortName>Condensed Consolidated Balance Sheets (Current Period Unaudited) (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>003 - Statement - Condensed Consolidated Statements of Operations (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-condensed-consolidated-statements-of-operations-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Operations (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>004 - Statement - Condensed Consolidated Statements of Shareholders' Equity (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-condensed-consolidated-statements-of-shareholders-equity-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Shareholders' Equity (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>005 - Statement - Condensed Consolidated Statements of Shareholders' Equity (Unaudited) (Parentheticals)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-condensed-consolidated-statements-of-shareholders-equity-unaudited-parentheticals</Role>
      <ShortName>Condensed Consolidated Statements of Shareholders' Equity (Unaudited) (Parentheticals)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>006 - Statement - Condensed Consolidated Statements of Cash Flows (Unaudited)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-condensed-consolidated-statements-of-cash-flows-unaudited</Role>
      <ShortName>Condensed Consolidated Statements of Cash Flows (Unaudited)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>007 - Disclosure - Note 1 - Basis of Presentation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-1-basis-of-presentation</Role>
      <ShortName>Note 1 - Basis of Presentation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>008 - Disclosure - Note 2 - Financial Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-2-financial-information</Role>
      <ShortName>Note 2 - Financial Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>009 - Disclosure - Note 3 - Stock-based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-3-stockbased-compensation</Role>
      <ShortName>Note 3 - Stock-based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>010 - Disclosure - Note 4 - Basic and Diluted Net (Loss)/Income Per Share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-4-basic-and-diluted-net-lossincome-per-share</Role>
      <ShortName>Note 4 - Basic and Diluted Net (Loss)/Income Per Share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>011 - Disclosure - Note 5 - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-5-commitments-and-contingencies</Role>
      <ShortName>Note 5 - Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>012 - Disclosure - Note 6 - Operating Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-6-operating-leases-</Role>
      <ShortName>Note 6 - Operating Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>013 - Disclosure - Note 7 - Debt and Other Financing Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-7-debt-and-other-financing-arrangements</Role>
      <ShortName>Note 7 - Debt and Other Financing Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>014 - Disclosure - Note 8 - Revenue</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-8-revenue</Role>
      <ShortName>Note 8 - Revenue</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>015 - Disclosure - Note 9 - Significant Customers</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-9-significant-customers</Role>
      <ShortName>Note 9 - Significant Customers</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>016 - Disclosure - Note 10 - Subsequent Events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-10-subsequent-events-</Role>
      <ShortName>Note 10 - Subsequent Events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>017 - Disclosure - Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-significant-accounting-policies-policies</Role>
      <ShortName>Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>018 - Disclosure - Note 3 - Stock-based Compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-3-stockbased-compensation-tables</Role>
      <ShortName>Note 3 - Stock-based Compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-3-stockbased-compensation</ParentRole>
      <Position>19</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>019 - Disclosure - Note 4 - Basic and Diluted Net (Loss)/Income Per Share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-4-basic-and-diluted-net-lossincome-per-share-tables</Role>
      <ShortName>Note 4 - Basic and Diluted Net (Loss)/Income Per Share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-4-basic-and-diluted-net-lossincome-per-share</ParentRole>
      <Position>20</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>020 - Disclosure - Note 6 - Operating Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-6-operating-leases-tables</Role>
      <ShortName>Note 6 - Operating Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-6-operating-leases-</ParentRole>
      <Position>21</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>021 - Disclosure - Note 7 - Debt and Other Financing Arrangements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-7-debt-and-other-financing-arrangements-tables</Role>
      <ShortName>Note 7 - Debt and Other Financing Arrangements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-7-debt-and-other-financing-arrangements</ParentRole>
      <Position>22</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>022 - Disclosure - Note 8 - Revenue (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-8-revenue-tables</Role>
      <ShortName>Note 8 - Revenue (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-8-revenue</ParentRole>
      <Position>23</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>023 - Disclosure - Note 2 - Financial Information (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-2-financial-information-details-textual</Role>
      <ShortName>Note 2 - Financial Information (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-2-financial-information</ParentRole>
      <Position>24</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>024 - Disclosure - Note 3 - Stock-based Compensation (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-3-stockbased-compensation-details-textual</Role>
      <ShortName>Note 3 - Stock-based Compensation (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-3-stockbased-compensation-tables</ParentRole>
      <Position>25</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>025 - Disclosure - Note 3 - Stock-based Compensation - Compensation Cost (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-3-stockbased-compensation-compensation-cost-details</Role>
      <ShortName>Note 3 - Stock-based Compensation - Compensation Cost (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>026 - Disclosure - Note 3 - Stock-based Compensation - Stock Option Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-3-stockbased-compensation-stock-option-activity-details</Role>
      <ShortName>Note 3 - Stock-based Compensation - Stock Option Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>027 - Disclosure - Note 3 - Stock-based Compensation - Nonvested Award Activity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-3-stockbased-compensation-nonvested-award-activity-details</Role>
      <ShortName>Note 3 - Stock-based Compensation - Nonvested Award Activity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>028 - Disclosure - Note 4 - Basic and Diluted Net (Loss)/Income Per Share (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-4-basic-and-diluted-net-lossincome-per-share-details-textual</Role>
      <ShortName>Note 4 - Basic and Diluted Net (Loss)/Income Per Share (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-4-basic-and-diluted-net-lossincome-per-share-tables</ParentRole>
      <Position>29</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>029 - Disclosure - Note 4 - Basic and Diluted Net (Loss)/Income Per Share - Basic and Diluted Weighted Average Common Shares Outstanding (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-4-basic-and-diluted-net-lossincome-per-share-basic-and-diluted-weighted-average-common-shares-outstanding-details</Role>
      <ShortName>Note 4 - Basic and Diluted Net (Loss)/Income Per Share - Basic and Diluted Weighted Average Common Shares Outstanding (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-4-basic-and-diluted-net-lossincome-per-share-tables</ParentRole>
      <Position>30</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>030 - Disclosure - Note 5 - Commitments and Contingencies (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-5-commitments-and-contingencies-details-textual</Role>
      <ShortName>Note 5 - Commitments and Contingencies (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-5-commitments-and-contingencies</ParentRole>
      <Position>31</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>031 - Disclosure - Note 6 - Operating Leases (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-6-operating-leases-details-textual</Role>
      <ShortName>Note 6 - Operating Leases (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-6-operating-leases-tables</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>032 - Disclosure - Note 6 - Operating Leases - Maturities of Lease Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-6-operating-leases-maturities-of-lease-liabilities-details</Role>
      <ShortName>Note 6 - Operating Leases - Maturities of Lease Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>33</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>033 - Disclosure - Note 7 - Debt and Other Financing Arrangements (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-7-debt-and-other-financing-arrangements-details-textual</Role>
      <ShortName>Note 7 - Debt and Other Financing Arrangements (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-7-debt-and-other-financing-arrangements-tables</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>034 - Disclosure - Note 7 - Debt and Other Financing Arrangements - Schedule of Debt Repayments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-7-debt-and-other-financing-arrangements-schedule-of-debt-repayments-details</Role>
      <ShortName>Note 7 - Debt and Other Financing Arrangements - Schedule of Debt Repayments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>35</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>035 - Disclosure - Note 8 - Revenue - Revenue by Major Source (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-8-revenue-revenue-by-major-source-details</Role>
      <ShortName>Note 8 - Revenue - Revenue by Major Source (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>36</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>036 - Disclosure - Note 9 - Significant Customers (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-9-significant-customers-details-textual</Role>
      <ShortName>Note 9 - Significant Customers (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-9-significant-customers</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="pmd20230331_10q.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>037 - Disclosure - Note 10 - Subsequent Events (Details Textual)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.psychemedics.com/20230331/role/statement-note-10-subsequent-events-details-textual</Role>
      <ShortName>Note 10 - Subsequent Events (Details Textual)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.psychemedics.com/20230331/role/statement-note-10-subsequent-events-</ParentRole>
      <Position>38</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <Logs>
    <Log type="Warning">[ix-0514-Hidden-Fact-Eligible-For-Transform] WARN: 44 fact(s) appearing in ix:hidden were eligible for transformation: dei:EntityRegistrantName, pmd:NumberOfMajorCustomers, us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment, us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent, us-gaap:CommonStockDividendsPerShareDeclared, us-gaap:CommonStockParOrStatedValuePerShare, us-gaap:CommonStockSharesAuthorized, us-gaap:CommonStockSharesIssued, us-gaap:CommonStockSharesOutstanding, us-gaap:DividendsCommonStockCash, us-gaap:NetIncomeLoss, us-gaap:PreferredStockParOrStatedValuePerShare, us-gaap:PreferredStockSharesAuthorized, us-gaap:PreferredStockSharesIssued, us-gaap:PreferredStockSharesOutstanding, us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod, us-gaap:StockholdersEquity, us-gaap:TreasuryStockCommonShares -  pmd20230331_10q.htm 8, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57</Log>
  </Logs>
  <InputFiles>
    <File doctype="10-Q" original="pmd20230331_10q.htm">pmd20230331_10q.htm</File>
    <File>ex_513189.htm</File>
    <File>ex_513190.htm</File>
    <File>ex_513191.htm</File>
    <File>ex_513192.htm</File>
    <File>pmd-20230331.xsd</File>
    <File>pmd-20230331_cal.xml</File>
    <File>pmd-20230331_def.xml</File>
    <File>pmd-20230331_lab.xml</File>
    <File>pmd-20230331_pre.xml</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="312">http://fasb.org/us-gaap/2023</BaseTaxonomy>
    <BaseTaxonomy items="29">http://xbrl.sec.gov/dei/2023</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
