Missing Form APs?

Research methods
PCAOB
XBRL
SEC
Author

Ian D. Gow

Published

1 December 2024

Keywords

PCAOB, Form AP, XBRL, SEC, Research methods

In May of 2024, I posted on LinkedIn a brief note about working with data from Form APs filed with the PCAOB. In a comment on my LinkedIn posting, Olga Usvyatsky suggested that “the variation is not limited to firms’ names - for instance, I find errors in reporting CIK codes of the clients intriguing.” I thought it would be interesting to investigate the issue raised by Olga, but doing so would be greatly facilitated by an alternative source for data on auditor-client relationships.

Recently, I discovered that it is relatively straightforward to process XBRL data filed using SEC EDGAR using data sets prepared by the SEC and posted on its website. There are two data sets: the Financial Statements and Financial Statement and Notes data sets, with the latter being roughly ten times as large as the former. For the task we consider here, we need to use the Financial Statement and Notes data set.1

In essence, I compare the auditors listed in firms’ 10-K filings with data on Form APs, with a focus on my success rate in matching the two. In Table 5, we can see that the auditor with the greatest number of non-matches is B F Borgers CPA PC, an auditor featured in a tongue-in-cheek Financial Times article by George Steer that showed that the auditor Ben Borgers had used 14 different names—including the name “Ben F orgers”—on Form AP filings.2 While more research would be needed to investigate the reasons for “missing” data, having Borgers emerge as the “winner” yet again suggests that missing Form AP filings might be another red flag worth pursuing.

This note was written using Quarto and compiled with RStudio, an integrated development environment (IDE) for working with R. The source code for this note is available here and the latest version of this PDF is here.

1 XBRL tags

A key concept in XBRL is the tag. Each value will be associated with, inter alia, a tag that indicates what the value represents. For example, a value might be tagged as AssetsCurrent to indicate that the value represents the total of current assets.3

To understand tags related to auditors, I begin by examining the tags that begin with the text Auditor. From Table 1, it can be seen that there are three such tags in common use: AuditorName, AuditorLocation, and AuditorFirmId.4

From Table 1, it appears that not every filing with non-missing AuditorName has non-missing AuditorFirmId. Table 2 provides more data on the distribution of missing values for these two fields, where has_name and has_id indicate non-missing values of AuditorName and AuditorFirmId, respectively.

Table 3 provides some information on some cases where AuditorName is present, but AuditorFirmId is not. While there’s no clear pattern to these data, they do suggest that firms are not always diligent in including AuditorFirmId in XBRL filings.

From Table 4, it can be seen that most filings containing information in AuditorFirmId are on variants of Form 10-K. So I focus on Form 10-K filings (and variants) in the analysis in this note.5

From the Form APs, I collect data on audit firm IDs, the CIKs of issuers and fiscal period-end dates.

I then merge data from these 10-K filings with data on Form APs using accession numbers and period-end dates. Table 5 shows that roughly 1–2% of filings on Form 10-Ks involving Big Four auditors (firm_id values of 34, 42, 238, and 185), Grant Thornton (248) or BDO (243) appear not to have corresponding matches in the Form APs data.

While there might be a perfectly innocent explanation, it might be worth digging deeper to understand why (say) Gries & Associates, Yusufali & Associates, and Heaton & Company have such high rates of unmatched filings.

Table 1: Tags beginning with Auditor on txt
tag n
AuditorName 41,610
AuditorLocation 41,361
AuditorFirmId 41,273
AuditorOpinionTextBlock 3,917
AuditorsRemunerationTableTextBlock 22
AuditorsRemunerationTextBlock 16
AuditorsRemunerationScheduleTableTextBlock 9
AuditorRemunerationTableTextBlock 9
AuditorReplacementProcessPolicyTextBlock 6
AuditorSRemunerationTableTextBlock 6
AuditorsRemunerationDisclosureTextBlock 4
AuditorNetIncome 3
AuditorInformationTextBlock 3
AuditorAttestationFlag 2
AuditorLocation1 2
AuditorFirmId1 2
AuditorName1 2
AuditorLocation2 1
AuditorFirmId2 1
AuditorName2 1
Table 2: Distribution of missingness of AuditorName and AuditorFirmId
has_name has_id n
FALSE TRUE 22
TRUE FALSE 74
TRUE TRUE 35,117
Table 3: Sample of auditor names with missing IDs
AuditorName n
PricewaterhouseCoopers LLP 7
Ernst & Young LLP 4
Pinnacle Accountancy Group of Utah 4
Gries & Associates, LLC 3
KPMG LLP 3
Table 4: Forms with information on AuditorFirmId
form n
10-K 29,020
20-F 4,830
10-K/A 2,767
40-F 723
20-F/A 483
10-KT 69
40-F/A 52
10-KT/A 7
6-K 7
10-Q 5
8-K 2
6-K/A 1
S-1/A 1
Table 5: Number of cases without Form AP filings by auditor
firm_id firm_name unmatched total % unmatched
34 Deloitte & Touche LLP 1,769 4,702 37.62
42 Ernst & Young LLP 1,667 5,265 31.66
238 PricewaterhouseCoopers LLP 1,448 4,073 35.55
185 KPMG LLP 1,257 3,754 33.48
248 Grant Thornton LLP 520 1,426 36.47
100 WithumSmith+Brown, PC 344 1,008 34.13
243 BDO USA, P.C. 315 1,092 28.85
688 Marcum LLP 229 1,609 14.23
173 Crowe LLP 207 553 37.43
49 RSM US LLP 197 683 28.84
199 Mayer Hoffman McCann P.C. 171 224 76.34
2738 M&K CPAS, PLLC 152 377 40.32
23 Baker Tilly US, LLP 144 357 40.34
686 Forvis Mazars, LLP 139 390 35.64
5525 Fruci & Associates II, PLLC 115 251 45.82
206 MaloneBailey, LLP 102 327 31.19
274 EisnerAmper LLP 93 241 38.59
587 RBSM LLP 87 193 45.08
5041 B F Borgers CPA PC 79 483 16.36
659 Moss Adams LLP 76 348 21.84

Footnotes

  1. The current code I use to download and update these data is in the dera.pq package. Run dera.pq::update_dera_notes() to get these data.↩︎

  2. The analysis of the Form AP data in the FT article had been conducted by independent researcher Stephen Walker and I showed how to reproduce Stephen’s analysis in an earlier note.↩︎

  3. The inter alia refers to other things use to narrow down what the value relates to, such as the filing (adsh, also known as the accession number), the period (ddate), and the applicable XBRL version (version).↩︎

  4. In Table 1, we do see AuditorFirmId1 and AuditorFirmId2, but given how rare these tags are, we can ignore these for present purposes.↩︎

  5. Specifically, I consider 10-K, 10-K/A, 10-KT, and 10-KT/A filings.↩︎