Skip to content

L1 capabilities

What ARK L1 detects (PII and DLP), how it compares with Presidio and the secret scanners gitleaks, TruffleHog and detect-secrets, how fast it is and how it is configured. Rule data comes from the rule registries (as in the L1 rule catalog), coverage from research/l1-pii/entity_map.yaml and research/dlp/entity_map.yaml, measurements from research/scoreboard/2026-10-29.json.

Measurements

All F1, latency and milestone values are from the milestone measurement of 2026-10-29 on main 9cb48cc (dev splits). Rule counts, labels and coverage reflect the current registries and entity maps, so they can be ahead of the measurement.

Summary

PII DLP
Result labels (entity groups) 91 23
Regex rules 152 94 (+5 relationship rules)
Checksum-validated units (count rule T03) 71 (Presidio 2.2.364: 35) –
Rules with a checksum or structure check 105 8
Default state all rules on credential/secret groups on, broader families opt-in
Compared with Presidio 2.2.364 (tuned) gitleaks 8.30.1, TruffleHog 3.97.9, detect-secrets 1.5.0
Overall F1 (2026-10-29) balanced: neutral 67.3, presidio_favored 69.7 default profile: 88.6 (P 99.3, R 80.0)

Milestone status

Programme Milestone Value Target Status Measured
PII M1 EN parity neutral 9/9, presidio_favored 14/19 shared ids with F1 >= Presidio tuned every shared id F1 >= Presidio tuned not met 2026-10-29
PII M2 DE/EU macro-F1 neutral 58.0, presidio_favored 59.6 neutral >= 33.6 (Presidio tuned + 15 pp), presidio_favored >= 85.7 not met (neutral met, presidio_favored not met; met against Presidio default, targets 36.7 / 7.3) 2026-10-29
PII M3 Checksum-validated breadth ARK 69, Presidio 35 checksum-validated units 70 (2x Presidio 2.2.364) not met 2026-10-29
PII M4 Latency 100 KiB p95 145.9 ms (bindings), 150.0 ms (native) 100 KiB p95 <= 10 ms not met (value from 2026-10-24, not re-measured; decision 2026-10-24: latency work last) 2026-10-29
PII Always Hard negatives FP 0 (Presidio 0) FP <= Presidio met 2026-10-29
DLP M1 Provider parity recall >= max(gitleaks, TruffleHog) on all 20 shared entities with gold; FP/MB benign code 0.053 (gitleaks 0.21) recall >= max(gitleaks, TruffleHog) at FP/MB <= gitleaks met 2026-10-29
DLP M2 Generic secrets CREDENTIAL F1 96.8 (gitleaks 23.7) F1 >= 43.7 (best baseline + 20 pp) met 2026-10-29
DLP M3 Breadth 62/206 gitleaks default rules mapped (30.1 %); 72 secret rules / 60 entities; 7 offline structure checks; 15 classes without baseline counterpart >= 90 % gitleaks rules mapped; >= 150 secret formats; >= 30 offline structure checks; >= 20 classes without baseline counterpart not met 2026-10-29
DLP M4 Latency 100 KiB p95 11.7 ms (under runner load); throughput 8.16 MiB/s (gitleaks 4.16 MiB/s) throughput >= gitleaks and 100 KiB p95 <= ~15 ms met (measured on the runner VPS under load; gitleaks throughput from 2026-10-24, not re-measured; rule decided 2026-10-24) 2026-10-29

PII

One row per benchmark entity of research/l1-pii/entity_map.yaml. Scope: shared (ARK and Presidio match it by pattern), ark_only, presidio_only (a gap in ARK L1), semantic (NER entities; L1 never reports them, see Dynamic PII). Check: the strongest validator of the entity's rules (checksum: check digits computed; format: length, alphabet, range or date; pattern: regex shape only; context: regex shape plus a field name or nearby term).

Coverage

Benchmark id Scope ARK label(s) Rule ID(s) Check Default Presidio entities
pii.email shared EMAIL pii_email format on EMAIL_ADDRESS
pii.phone shared PHONE pii_phone_international, pii_phone_de, pii_phone_de_national_context, pii_phone_de_national_proximity, pii_phone_us, pii_phone_regional format on (1 of 6 rules balanced/recall only) PHONE_NUMBER
pii.ip_address shared IP_ADDRESS pii_ipv4, pii_ipv6_full, pii_ipv6_compressed, pii_ipv6_loopback format on IP_ADDRESS
pii.mac_address shared MAC_ADDRESS pii_mac_address format on MAC_ADDRESS
pii.iban shared IBAN pii_iban_de, pii_iban_generic checksum on IBAN_CODE
pii.credit_card.pan shared CREDITCARD pii_credit_card checksum on CREDIT_CARD
pii.financial_account_number shared FINANCIAL_ACCOUNT_NUMBER pii_financial_account_number, pii_aba_routing_number_us, pii_aba_routing_number_us_context_free, pii_bban_gb checksum on (1 of 4 rules balanced/recall only) US_BANK_NUMBER, ABA_ROUTING_NUMBER
pii.us.social_security_number shared SSN pii_ssn_us, pii_ssn_us_proximity, pii_ssn_us_context_free format on (1 of 3 rules balanced/recall only) US_SSN
pii.uk.national_insurance_number shared NATIONALID pii_ni_uk, pii_ni_uk_context_free format on (1 of 2 rules balanced/recall only) UK_NINO
pii.de.tax_id shared STEUERID pii_steuer_id_de, pii_steuer_id_de_context_free checksum on (1 of 2 rules balanced/recall only) DE_TAX_ID
pii.de.tax_number shared TAX_NUMBER_DE pii_steuernummer_de, pii_steuernummer_de_context_free format on (1 of 2 rules balanced/recall only) DE_TAX_NUMBER
pii.de.social_security_number shared SOCIALID pii_rentenversicherung_de, pii_rentenversicherung_de_context_free checksum on (1 of 2 rules balanced/recall only) DE_SOCIAL_SECURITY
pii.de.health_insurance_number shared HEALTH_INSURANCE_NUMBER pii_health_insurance_number_de, pii_health_insurance_number_de_context_free checksum on (1 of 2 rules balanced/recall only) DE_HEALTH_INSURANCE
pii.de.lanr shared PHYSICIAN_NUMBER_LANR pii_physician_number_lanr_de, pii_physician_number_lanr_de_proximity checksum on (1 of 2 rules balanced/recall only) DE_LANR
pii.de.bsnr shared FACILITY_NUMBER_BSNR pii_facility_number_bsnr_de format on DE_BSNR
pii.uk.nhs_number shared NHS_NUMBER pii_nhs_number_uk checksum on UK_NHS
pii.au.abn shared AU_ABN pii_abn_au, pii_abn_au_context_free checksum on (1 of 2 rules balanced/recall only) AU_ABN
pii.au.acn shared AU_ACN pii_acn_au checksum on AU_ACN
pii.au.tfn shared AU_TFN pii_tfn_au checksum on AU_TFN
pii.au.medicare shared AU_MEDICARE pii_medicare_au, pii_medicare_au_context_free checksum on (1 of 2 rules balanced/recall only) AU_MEDICARE
pii.sg.nric_fin shared SG_NRIC_FIN pii_nric_fin_sg, pii_nric_fin_sg_context_free checksum on (1 of 2 rules balanced/recall only) SG_NRIC_FIN
pii.sg.uen shared SG_UEN pii_uen_sg, pii_uen_sg_context_free checksum on (1 of 2 rules balanced/recall only) SG_UEN
pii.se.personnummer shared SE_PERSONNUMMER pii_personnummer_se, pii_personnummer_se_context_free checksum on (1 of 2 rules balanced/recall only) SE_PERSONNUMMER
pii.fi.personal_identity_code shared FI_PERSONAL_IDENTITY_CODE pii_hetu_fi, pii_hetu_fi_context_free checksum on (1 of 2 rules balanced/recall only) FI_PERSONAL_IDENTITY_CODE
pii.se.organisationsnummer shared SE_ORGANISATIONSNUMMER pii_organisationsnummer_se, pii_organisationsnummer_se_context_free checksum on (1 of 2 rules balanced/recall only) SE_ORGANISATIONSNUMMER
pii.ca.sin shared CA_SIN pii_sin_ca, pii_sin_ca_context_free checksum on (1 of 2 rules balanced/recall only) CA_SIN
pii.tr.national_id shared TR_NATIONAL_ID pii_national_id_tr checksum on TR_NATIONAL_ID
pii.za.id_number shared ZA_ID_NUMBER pii_id_number_za, pii_id_number_za_context_free checksum on (1 of 2 rules balanced/recall only) ZA_ID_NUMBER
pii.kr.rrn shared KR_RRN pii_rrn_kr, pii_rrn_kr_context_free checksum on (1 of 2 rules balanced/recall only) KR_RRN
pii.kr.frn shared KR_FRN pii_frn_kr, pii_frn_kr_context_free checksum on (1 of 2 rules balanced/recall only) KR_FRN
pii.kr.brn shared KR_BRN pii_brn_kr, pii_brn_kr_context_free checksum on (1 of 2 rules balanced/recall only) KR_BRN
pii.es.nif shared ES_NIF pii_nif_es, pii_nif_es_context_free checksum on (1 of 2 rules balanced/recall only) ES_NIF
pii.es.nie shared ES_NIE pii_nie_es, pii_nie_es_context_free checksum on (1 of 2 rules balanced/recall only) ES_NIE
pii.it.fiscal_code shared IT_FISCAL_CODE pii_fiscal_code_it, pii_fiscal_code_it_context_free checksum on (1 of 2 rules balanced/recall only) IT_FISCAL_CODE
pii.pl.pesel shared PL_PESEL pii_pesel_pl checksum on PL_PESEL
entity.passport_number shared PASSPORT_NUMBER pii_passport_number_de, pii_passport_number_uk, pii_passport_number_two_letters, pii_passport_number_de_context_free, pii_passport_number_de_legacy checksum on (2 of 5 rules balanced/recall only) US_PASSPORT, UK_PASSPORT, DE_PASSPORT, ES_PASSPORT, IT_PASSPORT, IN_PASSPORT, KR_PASSPORT
pii.identity_card_number shared IDENTITY_CARD_NUMBER pii_identity_card_number_de, pii_identity_card_number_de_context_free, pii_identity_card_number_de_legacy checksum on (2 of 3 rules balanced/recall only) DE_ID_CARD, IT_IDENTITY_CARD
entity.driver_license_number shared DRIVER_LICENSE_NUMBER pii_driver_license_number_de, pii_driver_license_number_us, pii_driver_license_number_it, pii_driver_license_number_uk, pii_driver_license_number_uk_context_free format on (1 of 5 rules balanced/recall only) US_DRIVER_LICENSE, UK_DRIVING_LICENCE, DE_FUEHRERSCHEIN, IT_DRIVER_LICENSE, KR_DRIVER_LICENSE
pii.de.vat_id shared VAT_ID_DE pii_vat_id_de checksum on (balanced/recall only) DE_VAT_ID
pii.it.vat_code shared VAT_ID_IT pii_vat_id_it, pii_vat_id_it_proximity checksum on (balanced/recall only) IT_VAT_CODE
pii.license_plate shared LICENSEPLATE pii_kfz_kennzeichen_de, pii_vehicle_registration_uk format on DE_KFZ, UK_VEHICLE_REGISTRATION, IN_VEHICLE_REGISTRATION, NG_VEHICLE_REGISTRATION, TR_LICENSE_PLATE
pii.swift_bic ark_only SWIFT_CODE pii_swift_bic_context format on –
pii.credit_card.cvv ark_only CREDITCARD_CVV pii_credit_card_cvv format on –
pii.credit_card.expiry ark_only CREDITCARD_EXPIRY pii_credit_card_expiry format on –
pii.date_of_birth ark_only DOB pii_date_of_birth, pii_date_of_birth_written_day_first, pii_date_of_birth_written_month_first format on –
pii.employee_id ark_only EMPLOYEE_ID pii_employee_id, pii_employee_id_ocr_field, pii_employee_id_prefixed format on –
pii.customer_id ark_only CUSTOMER_ID pii_customer_id format on –
pii.patient_id ark_only PATIENT_ID pii_patient_id format on –
pii.student_id ark_only STUDENT_ID pii_student_id format on –
pii.applicant_id ark_only APPLICANT_ID pii_applicant_id format on –
pii.username ark_only USERNAME pii_username format on –
pii.at.vat_id ark_only VAT_ID_AT pii_vat_id_at checksum on (balanced/recall only) –
pii.ch.vat_id ark_only VAT_ID_CH pii_vat_id_ch checksum on (balanced/recall only) –
pii.fr.vat_id ark_only VAT_ID_FR pii_vat_id_fr checksum on (balanced/recall only) –
pii.nl.vat_id ark_only VAT_ID_NL pii_vat_id_nl checksum on (balanced/recall only) –
pii.be.vat_id ark_only VAT_ID_BE pii_vat_id_be checksum on (balanced/recall only) –
pii.es.vat_id ark_only VAT_ID_ES pii_vat_id_es, pii_vat_id_es_proximity checksum on (balanced/recall only) –
pii.bg.vat_id ark_only VAT_ID_BG pii_vat_id_bg checksum on (balanced/recall only) –
pii.cy.vat_id ark_only VAT_ID_CY pii_vat_id_cy checksum on (balanced/recall only) –
pii.cz.vat_id ark_only VAT_ID_CZ pii_vat_id_cz checksum on (balanced/recall only) –
pii.dk.vat_id ark_only VAT_ID_DK pii_vat_id_dk checksum on (balanced/recall only) –
pii.ee.vat_id ark_only VAT_ID_EE pii_vat_id_ee checksum on (balanced/recall only) –
pii.gr.vat_id ark_only VAT_ID_EL pii_vat_id_el checksum on (balanced/recall only) –
pii.fi.vat_id ark_only VAT_ID_FI pii_vat_id_fi checksum on (balanced/recall only) –
pii.hr.vat_id ark_only VAT_ID_HR pii_vat_id_hr checksum on (balanced/recall only) –
pii.hu.vat_id ark_only VAT_ID_HU pii_vat_id_hu checksum on (balanced/recall only) –
pii.ie.vat_id ark_only VAT_ID_IE pii_vat_id_ie checksum on (balanced/recall only) –
pii.lt.vat_id ark_only VAT_ID_LT pii_vat_id_lt checksum on (balanced/recall only) –
pii.lu.vat_id ark_only VAT_ID_LU pii_vat_id_lu checksum on (balanced/recall only) –
pii.lv.vat_id ark_only VAT_ID_LV pii_vat_id_lv checksum on (balanced/recall only) –
pii.mt.vat_id ark_only VAT_ID_MT pii_vat_id_mt checksum on (balanced/recall only) –
pii.pl.vat_id ark_only VAT_ID_PL pii_vat_id_pl, pii_vat_id_pl_proximity checksum on (balanced/recall only) –
pii.pl.regon ark_only PL_REGON pii_regon_pl checksum on –
pii.pt.vat_id ark_only VAT_ID_PT pii_vat_id_pt checksum on (balanced/recall only) –
pii.ro.vat_id ark_only VAT_ID_RO pii_vat_id_ro checksum on (balanced/recall only) –
pii.se.vat_id ark_only VAT_ID_SE pii_vat_id_se checksum on (balanced/recall only) –
pii.si.vat_id ark_only VAT_ID_SI pii_vat_id_si checksum on (balanced/recall only) –
pii.sk.vat_id ark_only VAT_ID_SK pii_vat_id_sk checksum on (balanced/recall only) –
pii.no.vat_id ark_only VAT_ID_NO pii_vat_id_no checksum on (balanced/recall only) –
pii.uk.vat_id ark_only VAT_ID_GB pii_vat_id_gb checksum on (balanced/recall only) –
pii.dk.cpr ark_only DK_CPR pii_cpr_dk, pii_cpr_dk_context_free checksum on (1 of 2 rules balanced/recall only) –
pii.no.fodselsnummer ark_only NO_FODSELSNUMMER pii_fodselsnummer_no, pii_fodselsnummer_no_context_free checksum on (1 of 2 rules balanced/recall only) –
pii.fr.nir ark_only FR_NIR pii_nir_fr, pii_nir_fr_context_free checksum on (1 of 2 rules balanced/recall only) –
pii.fr.siren ark_only FR_SIREN pii_siren_fr checksum on –
pii.fr.siret ark_only FR_SIRET pii_siret_fr, pii_siret_fr_context_free checksum on (1 of 2 rules balanced/recall only) –
pii.nl.bsn ark_only NL_BSN pii_bsn_nl, pii_bsn_nl_context_free checksum on (1 of 2 rules balanced/recall only) –
pii.be.national_number ark_only BE_NATIONAL_NUMBER pii_national_number_be, pii_national_number_be_context_free checksum on (1 of 2 rules balanced/recall only) –
pii.at.social_security_number ark_only AT_SOCIAL_SECURITY_NUMBER pii_social_security_number_at, pii_social_security_number_at_context_free checksum on (1 of 2 rules balanced/recall only) –
pii.ch.ahv_number ark_only CH_AHV_NUMBER pii_ahv_number_ch, pii_ahv_number_ch_context_free checksum on (1 of 2 rules balanced/recall only) –
pii.pt.nif ark_only PT_NIF pii_nif_pt checksum on –
pii.ie.ppsn ark_only IE_PPSN pii_ppsn_ie checksum on –
pii.url presidio_only – – – – URL
pii.crypto_wallet presidio_only – – – – CRYPTO
pii.us.medical_license presidio_only – – – – MEDICAL_LICENSE
pii.us.itin presidio_only – – – – US_ITIN
pii.us.mbi presidio_only – – – – US_MBI
pii.us.npi presidio_only – – – – US_NPI
pii.uk.postcode presidio_only – – – – UK_POSTCODE
pii.de.commercial_register presidio_only – – – – DE_HANDELSREGISTER
pii.de.postal_code presidio_only – – – – DE_PLZ
pii.in.aadhaar presidio_only – – – – IN_AADHAAR
pii.in.gstin presidio_only – – – – IN_GSTIN
pii.in.pan presidio_only – – – – IN_PAN
pii.in.voter_id presidio_only – – – – IN_VOTER
pii.ng.nin presidio_only – – – – NG_NIN
pii.ph.tin presidio_only – – – – PH_TIN
pii.ph.umid presidio_only – – – – PH_UMID
pii.th.tnin presidio_only – – – – TH_TNIN
entity.person_name semantic – – – – PERSON
entity.organization semantic – – – – ORGANIZATION
entity.location semantic – – – – LOCATION
entity.nrp semantic – – – – NRP
entity.date semantic – – – – DATE_TIME
entity.street_address semantic – – – – –

Entities: 41 shared, 50 ARK only, 17 Presidio only, 6 semantic. Hard-negative false positives (2026-10-29): ARK 0, Presidio 0.

F1 per entity

Exact F1 in percent on the dev split, measured 2026-10-29, per source family: ARK in balanced vs Presidio tuned, over all rows of the family (EN and DE; M1 counts EN rows only). Gold: gold spans in neutral / presidio_favored / ark_authored.

Legend: ARK x / Presidio y = exact F1 of both; no gold = measured, but the family has no gold span for the id; – = the id was not part of the measurement (added later, or semantic).

Benchmark id Scope Gold F1 neutral F1 presidio_favored F1 ark_authored ¹
pii.email shared 417 / 16 / 144 ARK 68.8 / Presidio 67.9 ARK 100.0 / Presidio 100.0 ARK 100.0 / Presidio 100.0
pii.phone shared 504 / 46 / 85 ARK 82.1 / Presidio 36.7 ARK 91.8 / Presidio 65.1 ARK 98.2 / Presidio 26.0
pii.ip_address shared 88 / 41 / 84 ARK 96.7 / Presidio 94.6 ARK 86.1 / Presidio 96.2 ARK 100.0 / Presidio 100.0
pii.mac_address shared 0 / 6 / 22 no gold ARK 100.0 / Presidio 100.0 ARK 100.0 / Presidio 100.0
pii.iban shared 70 / 66 / 81 ARK 80.6 / Presidio 81.6 ARK 63.9 / Presidio 100.0 ARK 68.3 / Presidio 100.0
pii.credit_card.pan shared 135 / 49 / 19 ARK 47.9 / Presidio 35.6 ARK 100.0 / Presidio 91.1 ARK 100.0 / Presidio 79.2
pii.financial_account_number shared 126 / 5 / 20 ARK 49.2 / Presidio 12.5 ARK 57.1 / Presidio 0.0 ARK 78.9 / Presidio 37.5
pii.us.social_security_number shared 44 / 15 / 29 ARK 68.5 / Presidio 66.7 ARK 75.0 / Presidio 88.9 ARK 100.0 / Presidio 55.6
pii.uk.national_insurance_number shared 0 / 3 / 22 no gold ARK 66.7 / Presidio 100.0 ARK 100.0 / Presidio 50.0
pii.de.tax_id shared 0 / 1 / 27 no gold ARK 0.0 / Presidio 100.0 ARK 100.0 / Presidio 29.3
pii.de.tax_number shared 0 / 2 / 55 no gold ARK 66.7 / Presidio 100.0 ARK 100.0 / Presidio 84.5
pii.de.social_security_number shared 0 / 1 / 25 no gold ARK 100.0 / Presidio 100.0 ARK 100.0 / Presidio 27.6
pii.de.health_insurance_number shared 0 / 3 / 55 no gold ARK 100.0 / Presidio 100.0 ARK 100.0 / Presidio 86.6
pii.de.lanr shared 0 / 3 / 53 no gold ARK 50.0 / Presidio 100.0 ARK 100.0 / Presidio 81.6
pii.de.bsnr shared 0 / 5 / 50 no gold ARK 57.1 / Presidio 57.1 ARK 100.0 / Presidio 65.0
pii.uk.nhs_number shared 0 / 0 / 53 no gold no gold ARK 96.1 / Presidio 83.0
pii.au.abn shared 0 / 1 / 18 no gold ARK 100.0 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.au.acn shared 0 / 3 / 24 no gold ARK 0.0 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.au.tfn shared 0 / 0 / 20 no gold no gold ARK 100.0 / Presidio 0.0
pii.au.medicare shared 0 / 1 / 19 no gold ARK 100.0 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.sg.nric_fin shared 0 / 3 / 21 no gold ARK 50.0 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.sg.uen shared 0 / 4 / 24 no gold ARK 85.7 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.se.personnummer shared 0 / 2 / 19 no gold ARK 100.0 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.fi.personal_identity_code shared 0 / 14 / 28 no gold ARK 96.3 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.se.organisationsnummer shared 0 / 3 / 20 no gold ARK 50.0 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.ca.sin shared 0 / 5 / 23 no gold ARK 57.1 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.tr.national_id shared 0 / 4 / 21 no gold ARK 66.7 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.za.id_number shared 0 / 3 / 23 no gold ARK 100.0 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.kr.rrn shared 0 / 5 / 24 no gold ARK 57.1 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.kr.frn shared 0 / 3 / 23 no gold ARK 80.0 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.kr.brn shared 0 / 2 / 27 no gold ARK 66.7 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.es.nif shared 0 / 3 / 26 no gold ARK 80.0 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.es.nie shared 0 / 5 / 26 no gold ARK 88.9 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.it.fiscal_code shared 0 / 3 / 23 no gold ARK 50.0 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.pl.pesel shared 0 / 3 / 22 no gold ARK 0.0 / Presidio 0.0 ARK 0.0 / Presidio 0.0
entity.passport_number shared 98 / 29 / 24 ARK 54.4 / Presidio 38.4 ARK 34.3 / Presidio 51.3 ARK 93.3 / Presidio 52.6
pii.identity_card_number shared 0 / 11 / 31 no gold ARK 42.9 / Presidio 84.2 ARK 78.4 / Presidio 38.5
entity.driver_license_number shared 120 / 14 / 23 ARK 37.1 / Presidio 6.2 ARK 83.3 / Presidio 78.3 ARK 100.0 / Presidio 47.3
pii.de.vat_id shared 0 / 5 / 87 no gold ARK 75.0 / Presidio 100.0 ARK 100.0 / Presidio 65.1
pii.it.vat_code shared 0 / 1 / 28 no gold ARK 0.0 / Presidio 0.0 ARK 100.0 / Presidio 0.0
pii.license_plate shared 0 / 21 / 19 no gold ARK 9.1 / Presidio 0.0 ARK 100.0 / Presidio 69.0
pii.swift_bic ark_only 79 / 0 / 84 ARK 38.5 / Presidio 0.0 no gold ARK 36.9 / Presidio 0.0
pii.credit_card.cvv ark_only 47 / 0 / 27 ARK 0.0 / Presidio 0.0 no gold ARK 68.3 / Presidio 0.0
pii.credit_card.expiry ark_only 0 / 0 / 26 no gold no gold ARK 0.0 / Presidio 0.0
pii.date_of_birth ark_only 82 / 0 / 144 ARK 67.0 / Presidio 0.0 no gold ARK 99.7 / Presidio 0.0
pii.employee_id ark_only 75 / 0 / 27 ARK 88.2 / Presidio 0.0 no gold ARK 100.0 / Presidio 0.0
pii.customer_id ark_only 90 / 0 / 93 ARK 60.9 / Presidio 0.0 no gold ARK 99.5 / Presidio 0.0
pii.patient_id ark_only 0 / 0 / 22 no gold no gold ARK 92.7 / Presidio 0.0
pii.student_id ark_only 0 / 0 / 30 no gold no gold ARK 98.3 / Presidio 0.0
pii.applicant_id ark_only 0 / 0 / 24 no gold no gold ARK 100.0 / Presidio 0.0
pii.username ark_only 26 / 0 / 84 ARK 10.3 / Presidio 0.0 no gold ARK 98.2 / Presidio 0.0
pii.at.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.ch.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.fr.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.nl.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.be.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.es.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.bg.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.cy.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.cz.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.dk.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.ee.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.gr.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.fi.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.hr.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.hu.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.ie.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.lt.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.lu.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.lv.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.mt.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.pl.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.pl.regon ark_only – – – –
pii.pt.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.ro.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.se.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.si.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.sk.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.no.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.uk.vat_id ark_only 0 / 0 / 16 no gold no gold ARK 100.0 / Presidio 0.0
pii.dk.cpr ark_only 0 / 0 / 0 no gold no gold no gold
pii.no.fodselsnummer ark_only 0 / 0 / 0 no gold no gold no gold
pii.fr.nir ark_only 0 / 0 / 0 no gold no gold no gold
pii.fr.siren ark_only 0 / 0 / 0 no gold no gold no gold
pii.fr.siret ark_only 0 / 0 / 0 no gold no gold no gold
pii.nl.bsn ark_only 0 / 0 / 0 no gold no gold no gold
pii.be.national_number ark_only 0 / 0 / 0 no gold no gold no gold
pii.at.social_security_number ark_only 0 / 0 / 0 no gold no gold no gold
pii.ch.ahv_number ark_only 0 / 0 / 0 no gold no gold no gold
pii.pt.nif ark_only 0 / 0 / 0 no gold no gold no gold
pii.ie.ppsn ark_only 0 / 0 / 0 no gold no gold no gold
pii.url presidio_only 0 / 21 / 20 no gold ARK 0.0 / Presidio 77.8 ARK 0.0 / Presidio 8.2
pii.crypto_wallet presidio_only 0 / 1 / 21 no gold ARK 0.0 / Presidio 100.0 ARK 0.0 / Presidio 100.0
pii.us.medical_license presidio_only 0 / 0 / 22 no gold no gold ARK 0.0 / Presidio 32.3
pii.us.itin presidio_only 0 / 2 / 22 no gold ARK 0.0 / Presidio 100.0 ARK 0.0 / Presidio 58.1
pii.us.mbi presidio_only 0 / 5 / 24 no gold ARK 0.0 / Presidio 0.0 ARK 0.0 / Presidio 0.0
pii.us.npi presidio_only 0 / 5 / 22 no gold ARK 0.0 / Presidio 0.0 ARK 0.0 / Presidio 0.0
pii.uk.postcode presidio_only 0 / 4 / 249 no gold ARK 0.0 / Presidio 0.0 ARK 0.0 / Presidio 0.0
pii.de.commercial_register presidio_only 0 / 1 / 56 no gold ARK 0.0 / Presidio 100.0 ARK 0.0 / Presidio 88.0
pii.de.postal_code presidio_only 0 / 0 / 231 no gold no gold ARK 0.0 / Presidio 82.8
pii.in.aadhaar presidio_only 0 / 4 / 22 no gold ARK 0.0 / Presidio 0.0 ARK 0.0 / Presidio 0.0
pii.in.gstin presidio_only 0 / 3 / 24 no gold ARK 0.0 / Presidio 0.0 ARK 0.0 / Presidio 0.0
pii.in.pan presidio_only 0 / 3 / 19 no gold ARK 0.0 / Presidio 0.0 ARK 0.0 / Presidio 0.0
pii.in.voter_id presidio_only 0 / 3 / 23 no gold ARK 0.0 / Presidio 0.0 ARK 0.0 / Presidio 0.0
pii.ng.nin presidio_only 0 / 0 / 28 no gold no gold ARK 0.0 / Presidio 0.0
pii.ph.tin presidio_only 0 / 3 / 24 no gold ARK 0.0 / Presidio 0.0 ARK 0.0 / Presidio 0.0
pii.ph.umid presidio_only 0 / 8 / 24 no gold ARK 0.0 / Presidio 0.0 ARK 0.0 / Presidio 0.0
pii.th.tnin presidio_only 0 / 6 / 24 no gold ARK 0.0 / Presidio 0.0 ARK 0.0 / Presidio 0.0
entity.person_name semantic – – – –
entity.organization semantic – – – –
entity.location semantic – – – –
entity.nrp semantic – – – –
entity.date semantic – – – –
entity.street_address semantic – – – –

¹ ark_authored (ARK's own synthetic DE/EU goldset) is reported and decides no milestone. Measured ids: 107, 96 with gold in at least one family, 11 without gold.

DLP

Groups

Credential/secret groups are on by default; business identifiers, metrics and content classes are opt-in per rule. Exact F1 in percent on the dev split, measured 2026-10-29: default-on groups in the default profile against the best of gitleaks, TruffleHog, detect-secrets; default-off groups with their rules switched on (ARK's extended profile, marked opt-in profile; no baseline has these classes). Content classes are judged per document on external corpora.

Legend: ARK x / best baseline y (name) = exact F1 of ARK and of the best baseline; no gold = measured, but no gold for it; – = not part of the measurement; planned / not implemented = planned class without rules.

Result label Family Default Rules Entities Gold F1
API_KEY provider_secret on 10 8 320 ARK 100.0 / best baseline 99.5 (TruffleHog)
CLOUD_KEY provider_secret on 18 13 200 ARK 100.0 / best baseline 49.1 (gitleaks)
PAYMENT_KEY provider_secret on 2 2 80 ARK 100.0 / best baseline 39.2 (gitleaks)
SECRET_TOKEN provider_secret on 27 24 360 ARK 99.2 / best baseline 71.7 (TruffleHog)
CREDENTIAL generic_credential on 10 9 320 ARK 96.8 / best baseline 23.7 (gitleaks)
PASSWORD_HASH generic_credential on 1 1 40 ARK 91.9 / best baseline 0.0 (gitleaks, TruffleHog, detect-secrets)
PRIVATE_KEY key_material on 2 1 37 ARK 88.1 / best baseline 56.1 (detect-secrets)
CRYPTO_KEY key_material on 2 2 80 ARK 100.0 / best baseline 0.0 (gitleaks, TruffleHog, detect-secrets)
dlp.de.vat_id business_identifier off 1 1 32 ARK 18.2 (opt-in profile)
dlp.de.commercial_register_number business_identifier off 1 1 32 ARK 50.0 (opt-in profile)
dlp.de.facility_number_bsnr business_identifier off 1 1 32 ARK 28.6 (opt-in profile)
dlp.record.case_id business_identifier off 1 1 32 ARK 18.2 (opt-in profile)
dlp.record.contract_id business_identifier off 1 1 32 ARK 18.2 (opt-in profile)
dlp.record.claim_id business_identifier off 1 1 32 ARK 18.2 (opt-in profile)
dlp.record.order_id business_identifier off 1 1 32 ARK 18.2 (opt-in profile)
dlp.record.invoice_id business_identifier off 1 1 32 ARK 18.2 (opt-in profile)
dlp.project_id business_identifier off 1 1 32 ARK 18.2 (opt-in profile)
dlp.organization_id business_identifier off 1 1 32 ARK 18.2 (opt-in profile)
dlp.internal.business_metric content_class off 1 1 0 no gold
dlp.content.source_code content_class off 5 1 214 documents ARK 99.1 (opt-in profile)
dlp.content.sql content_class off 2 1 10 documents ARK 90.9 (opt-in profile)
dlp.content.database_dump content_class off 2 1 0 no gold
dlp.content.system_log content_class off 2 1 456 documents ARK 0.0 (opt-in profile)
dlp.document.legal_privileged document_class (planned) off 0 0 planned / not implemented planned / not implemented
dlp.document.hr document_class (planned) off 0 0 planned / not implemented planned / not implemented
dlp.document.rnd_ip document_class (planned) off 0 0 planned / not implemented planned / not implemented

Entities

One row per entity of research/dlp/entity_map.yaml. Scope: shared (ARK and at least one baseline), ark_only, baseline_only (a gap in ARK L1), out_of_scope (action or policy rules, not a secret value). Structure check: the strongest validator_strength of the entity's rules (checksum, structure: decoded or parsed, format, none). Baseline rules: the gitleaks, TruffleHog and detect-secrets rules mapped to the entity.

Coverage

Entity Scope Group Rule ID(s) Structure check Default Baseline rules
llm.anthropic.api_key shared API_KEY dlp_anthropic_key format on gitleaks: anthropic-api-key, anthropic-admin-api-key; TruffleHog: Anthropic
llm.openai.api_key shared API_KEY dlp_openai_key, dlp_openai_legacy, dlp_openai_svc format on gitleaks: openai-api-key; TruffleHog: OpenAI; detect-secrets: OpenAIDetector
llm.huggingface.token shared API_KEY dlp_huggingface format on gitleaks: huggingface-access-token, huggingface-organization-api-token; TruffleHog: HuggingFace
llm.xai.api_key shared API_KEY dlp_xai_key format on TruffleHog: XAI
llm.groq.api_key shared API_KEY dlp_groq_key format on TruffleHog: Groq
llm.replicate.api_token shared API_KEY dlp_replicate format on TruffleHog: Replicate
cloud.aws.access_key_id shared CLOUD_KEY dlp_aws_access_key format on gitleaks: aws-access-token; TruffleHog: AWS; detect-secrets: AWSKeyDetector
cloud.aws.secret_access_key shared CLOUD_KEY dlp_aws_secret_key format on TruffleHog: AWS; detect-secrets: AWSKeyDetector
cloud.gcp.api_key shared CLOUD_KEY dlp_google_api_key format on gitleaks: gcp-api-key
cloud.gcp.oauth_access_token shared CLOUD_KEY dlp_google_oauth_token format on TruffleHog: GoogleOauth2
cloud.gcp.oauth_client_secret shared CLOUD_KEY dlp_gcp_client_secret format on –
vcs.github.token shared SECRET_TOKEN dlp_github_token checksum on gitleaks: github-pat, github-oauth, github-app-token, github-refresh-token; TruffleHog: Github; detect-secrets: GitHubTokenDetector
vcs.github.fine_grained_pat shared SECRET_TOKEN dlp_github_pat format on gitleaks: github-fine-grained-pat; TruffleHog: Github; detect-secrets: GitHubTokenDetector
vcs.gitlab.pat shared SECRET_TOKEN dlp_gitlab_pat format on gitleaks: gitlab-pat, gitlab-pat-routable; TruffleHog: Gitlab; detect-secrets: GitLabTokenDetector
vcs.gitlab.token shared SECRET_TOKEN dlp_gitlab_token format on gitleaks: gitlab-cicd-job-token, gitlab-deploy-token, gitlab-feature-flag-client-token, gitlab-feed-token, gitlab-incoming-mail-token, gitlab-kubernetes-agent-token, gitlab-ptt, gitlab-rrt, gitlab-runner-authentication-token, gitlab-runner-authentication-token-routable, gitlab-scim-token; TruffleHog: Gitlab
vcs.gitlab.oauth_app_secret shared API_KEY dlp_gitlab_oauth_secret format on gitleaks: gitlab-oauth-app-secret
registry.npm.access_token shared SECRET_TOKEN dlp_npm_token checksum on gitleaks: npm-access-token; TruffleHog: NpmToken; detect-secrets: NpmDetector
registry.pypi.upload_token shared SECRET_TOKEN dlp_pypi_token structure on gitleaks: pypi-upload-token; TruffleHog: PyPI; detect-secrets: PypiTokenDetector
registry.rubygems.api_token shared SECRET_TOKEN dlp_rubygems_token format on gitleaks: rubygems-api-token; TruffleHog: RubyGems
registry.jfrog.artifactory shared SECRET_TOKEN dlp_jfrog_token format on gitleaks: artifactory-api-key, artifactory-reference-token, jfrog-api-key, jfrog-identity-token; detect-secrets: ArtifactoryDetector
devops.terraform_cloud.token shared SECRET_TOKEN dlp_terraform_cloud_token format on gitleaks: hashicorp-tf-api-token, hashicorp-tf-password; TruffleHog: TerraformCloudPersonalToken
devops.pulumi.api_token shared SECRET_TOKEN dlp_pulumi_token format on gitleaks: pulumi-api-token; TruffleHog: Pulumi
devops.vault.token shared SECRET_TOKEN dlp_vault_token, dlp_vault_legacy_token format on gitleaks: vault-batch-token, vault-service-token
devops.doppler.api_token shared SECRET_TOKEN dlp_doppler_token format on gitleaks: doppler-api-token; TruffleHog: Doppler
vcs.bitbucket.client_secret shared API_KEY dlp_bitbucket_client_secret format on gitleaks: bitbucket-client-secret
vcs.azure_devops.pat shared SECRET_TOKEN dlp_azure_devops_pat, dlp_azure_devops_legacy_pat format on TruffleHog: AzureDevopsPersonalAccessToken
ci.circleci.api_token shared SECRET_TOKEN dlp_circleci_token, dlp_circleci_legacy_token format on TruffleHog: CircleCI
ci.travisci.access_token shared SECRET_TOKEN dlp_travis_token format on gitleaks: travisci-access-token; TruffleHog: TravisCI
hosting.vercel.access_token shared CLOUD_KEY dlp_vercel_token, dlp_vercel_legacy_token format on TruffleHog: Vercel
hosting.netlify.access_token shared CLOUD_KEY dlp_netlify_token, dlp_netlify_legacy_token format on gitleaks: netlify-access-token; TruffleHog: Netlify
hosting.flyio.access_token shared CLOUD_KEY dlp_flyio_token, dlp_flyio_macaroon_token format on gitleaks: flyio-access-token
hosting.heroku.api_key shared CLOUD_KEY dlp_heroku_api_key, dlp_heroku_legacy_api_key format on gitleaks: heroku-api-key, heroku-api-key-v2; TruffleHog: Heroku
hosting.railway.api_token shared CLOUD_KEY dlp_railway_token format on TruffleHog: RailwayApp
hosting.cloudflare.api_key shared CLOUD_KEY dlp_cloudflare_api_key, dlp_cloudflare_origin_ca_key format on gitleaks: cloudflare-api-key, cloudflare-global-api-key, cloudflare-origin-ca-key; TruffleHog: CloudflareApiToken, CloudflareCaKey
hosting.digitalocean.token shared CLOUD_KEY dlp_digitalocean_token format on gitleaks: digitalocean-access-token, digitalocean-pat, digitalocean-refresh-token; TruffleHog: DigitalOceanV2
payment.stripe.secret_key shared PAYMENT_KEY dlp_stripe_key format on gitleaks: stripe-access-token; TruffleHog: Stripe; detect-secrets: StripeDetector
comm.slack.token shared SECRET_TOKEN dlp_slack_token format on gitleaks: slack-bot-token, slack-user-token, slack-legacy-bot-token, slack-legacy-token, slack-legacy-workspace-token; TruffleHog: Slack; detect-secrets: SlackDetector
comm.discord.bot_token shared SECRET_TOKEN dlp_discord_token format on TruffleHog: DiscordBotToken; detect-secrets: DiscordBotTokenDetector
key.pem_private_key shared PRIVATE_KEY dlp_private_key_block, dlp_private_key_header format on gitleaks: private-key; TruffleHog: PrivateKey; detect-secrets: PrivateKeyDetector
token.jwt shared SECRET_TOKEN dlp_jwt_token format on gitleaks: jwt, jwt-base64; TruffleHog: JWT; detect-secrets: JwtTokenDetector
credential.secret_assignment shared CREDENTIAL dlp_env_var_secret, dlp_generic_credential_assignment none on gitleaks: generic-api-key; detect-secrets: KeywordDetector
credential.password_assignment shared CREDENTIAL dlp_password_assignment none on detect-secrets: KeywordDetector
credential.http_bearer shared SECRET_TOKEN dlp_bearer_token format on gitleaks: curl-auth-header
credential.http_basic_auth shared CREDENTIAL dlp_basic_auth structure on –
credential.url_userinfo shared CREDENTIAL dlp_url_userinfo_password none on TruffleHog: URI, Postgres, MongoDB, Redis, FTP, RabbitMQ, JDBC; detect-secrets: BasicAuthDetector
credential.connection_string shared CREDENTIAL dlp_connection_string_password structure on TruffleHog: JDBC, SQLServer
credential.ldap_bind_password shared CREDENTIAL dlp_ldap_bind_password format on TruffleHog: LDAP
credential.signed_url_signature shared CREDENTIAL dlp_signed_url_signature none on –
credential.session_cookie shared CREDENTIAL dlp_session_cookie none on –
credential.csrf_token shared SECRET_TOKEN dlp_csrf_token none on –
credential.password_hash shared PASSWORD_HASH dlp_password_hash format on –
content.source_code shared dlp.content.source_code dlp_source_code_fence, dlp_source_code_statement, dlp_source_code_python_rust_assignment, dlp_source_code_declaration, dlp_source_code_import format off –
content.database_dump shared dlp.content.database_dump dlp_database_dump_insert, dlp_database_dump_header format off –
content.system_log shared dlp.content.system_log dlp_stacktrace_block, dlp_structured_system_log format off –
payment.stripe.webhook_secret ark_only PAYMENT_KEY dlp_stripe_webhook format on –
registry.dockerhub.access_token ark_only SECRET_TOKEN dlp_dockerhub_token format on –
registry.cratesio.api_token ark_only SECRET_TOKEN dlp_cratesio_token format on –
registry.packagist.token ark_only SECRET_TOKEN dlp_packagist_token checksum on –
hosting.render.api_key ark_only CLOUD_KEY dlp_render_api_key format on –
crypto.ethereum.private_key ark_only CRYPTO_KEY dlp_eth_private_key format on –
crypto.bitcoin.wif ark_only CRYPTO_KEY dlp_btc_wif checksum on –
credential.url_userinfo_token ark_only SECRET_TOKEN dlp_url_userinfo_token none on –
credential.url_query_secret ark_only CREDENTIAL dlp_credential_in_url none on –
identifier.de.vat_id ark_only dlp.de.vat_id dlp_de_vat_id format off –
identifier.de.commercial_register ark_only dlp.de.commercial_register_number dlp_de_commercial_register_number format off –
identifier.de.bsnr ark_only dlp.de.facility_number_bsnr dlp_de_facility_number_bsnr format off –
identifier.record.case ark_only dlp.record.case_id dlp_record_case_id none off –
identifier.record.contract ark_only dlp.record.contract_id dlp_record_contract_id none off –
identifier.record.claim ark_only dlp.record.claim_id dlp_record_claim_id none off –
identifier.record.order ark_only dlp.record.order_id dlp_record_order_id none off –
identifier.record.invoice ark_only dlp.record.invoice_id dlp_record_invoice_id none off –
identifier.project ark_only dlp.project_id dlp_project_id none off –
identifier.organization ark_only dlp.organization_id dlp_organization_id none off –
content.business_metric ark_only dlp.internal.business_metric dlp_internal_business_metric format off –
content.sql ark_only dlp.content.sql dlp_sql_statement, dlp_sql_multiline_statement structure off –
vcs.gitlab.session_cookie baseline_only CREDENTIAL – – – gitleaks: gitlab-session-cookie
comm.slack.app_config_token baseline_only SECRET_TOKEN – – – gitleaks: slack-app-token, slack-config-access-token, slack-config-refresh-token; TruffleHog: Slack
llm.cohere.api_key baseline_only API_KEY – – – gitleaks: cohere-api-token
llm.perplexity.api_key baseline_only API_KEY – – – gitleaks: perplexity-api-key
llm.privateai.api_key baseline_only API_KEY – – – gitleaks: privateai-api-token
cloud.aws.bedrock_api_key baseline_only CLOUD_KEY – – – gitleaks: aws-amazon-bedrock-api-key-long-lived, aws-amazon-bedrock-api-key-short-lived
cloud.alibaba.access_key baseline_only CLOUD_KEY – – – gitleaks: alibaba-access-key-id, alibaba-secret-key
cloud.azure.entra_client_secret baseline_only CLOUD_KEY – – – gitleaks: azure-ad-client-secret; TruffleHog: Azure
cloud.azure.storage_account_key baseline_only CLOUD_KEY – – – TruffleHog: AzureStorage; detect-secrets: AzureStorageKeyDetector
cloud.gcp.service_account_key baseline_only CLOUD_KEY – – – TruffleHog: GCP
cloud.ibm.credentials baseline_only CLOUD_KEY – – – detect-secrets: IbmCloudIamDetector, IbmCosHmacDetector, SoftlayerDetector
cloud.yandex.credentials baseline_only CLOUD_KEY – – – gitleaks: yandex-access-token, yandex-api-key, yandex-aws-access-token
cloud.scalingo.api_token baseline_only CLOUD_KEY – – – gitleaks: scalingo-api-token
registry.clojars.api_token baseline_only SECRET_TOKEN – – – gitleaks: clojars-api-token
devops.prefect.api_token baseline_only SECRET_TOKEN – – – gitleaks: prefect-api-token; TruffleHog: Prefect
devops.infracost.api_token baseline_only SECRET_TOKEN – – – gitleaks: infracost-api-token
devops.octopus_deploy.api_key baseline_only SECRET_TOKEN – – – gitleaks: octopus-deploy-api-key
devops.harness.api_key baseline_only SECRET_TOKEN – – – gitleaks: harness-api-key
devops.snyk.api_token baseline_only SECRET_TOKEN – – – gitleaks: snyk-api-token; TruffleHog: SnykKey
devops.sonar.api_token baseline_only SECRET_TOKEN – – – gitleaks: sonar-api-token
devops.codecov.access_token baseline_only SECRET_TOKEN – – – gitleaks: codecov-access-token
devops.sourcegraph.access_token baseline_only SECRET_TOKEN – – – gitleaks: sourcegraph-access-token; TruffleHog: Sourcegraph
ci.droneci.access_token baseline_only SECRET_TOKEN – – – gitleaks: droneci-access-token; TruffleHog: DroneCI
hosting.openshift.user_token baseline_only CLOUD_KEY – – – gitleaks: openshift-user-token
hosting.defined_networking.api_token baseline_only CLOUD_KEY – – – gitleaks: defined-networking-api-token
hosting.fastly.api_token baseline_only CLOUD_KEY – – – gitleaks: fastly-api-token; TruffleHog: FastlyPersonalToken
hosting.settlemint.access_token baseline_only CLOUD_KEY – – – gitleaks: settlemint-application-access-token, settlemint-personal-access-token, settlemint-service-access-token
observability.datadog.access_token baseline_only API_KEY – – – gitleaks: datadog-access-token
observability.newrelic.key baseline_only API_KEY – – – gitleaks: new-relic-insert-key, new-relic-user-api-key
observability.sentry.token baseline_only API_KEY – – – gitleaks: sentry-access-token, sentry-org-token, sentry-user-token
observability.grafana.token baseline_only API_KEY – – – gitleaks: grafana-api-key, grafana-cloud-api-token, grafana-service-account-token
observability.dynatrace.api_token baseline_only API_KEY – – – gitleaks: dynatrace-api-token
observability.sumologic.access_token baseline_only API_KEY – – – gitleaks: sumologic-access-token
comm.webhook_url baseline_only SECRET_TOKEN – – – gitleaks: slack-webhook-url, microsoft-teams-webhook; TruffleHog: SlackWebhook, MicrosoftTeamsWebhook; detect-secrets: SlackDetector
comm.discord.api_credentials baseline_only API_KEY – – – gitleaks: discord-api-token, discord-client-secret
comm.telegram.bot_token baseline_only SECRET_TOKEN – – – gitleaks: telegram-bot-api-token; TruffleHog: TelegramBotToken; detect-secrets: TelegramBotTokenDetector
comm.twilio.api_key baseline_only API_KEY – – – gitleaks: twilio-api-key; TruffleHog: TwilioApiKey; detect-secrets: TwilioKeyDetector
comm.sendgrid.api_key baseline_only API_KEY – – – gitleaks: sendgrid-api-token; TruffleHog: SendGrid; detect-secrets: SendGridDetector
comm.brevo.api_key baseline_only API_KEY – – – gitleaks: sendinblue-api-token
comm.mailgun.key baseline_only API_KEY – – – gitleaks: mailgun-private-api-token, mailgun-signing-key; TruffleHog: Mailgun
comm.mailchimp.api_key baseline_only API_KEY – – – gitleaks: mailchimp-api-key; TruffleHog: Mailchimp; detect-secrets: MailchimpDetector
comm.messagebird.api_token baseline_only API_KEY – – – gitleaks: messagebird-api-token; TruffleHog: MessageBird
comm.mattermost.access_token baseline_only API_KEY – – – gitleaks: mattermost-access-token; TruffleHog: MattermostPersonalToken
comm.sendbird.access_token baseline_only API_KEY – – – gitleaks: sendbird-access-token; TruffleHog: Sendbird, SendbirdOrganizationAPI
comm.gitter.access_token baseline_only API_KEY – – – gitleaks: gitter-access-token; TruffleHog: Gitter
payment.square.access_token baseline_only PAYMENT_KEY – – – gitleaks: square-access-token; detect-secrets: SquareOAuthDetector
payment.shopify.token baseline_only PAYMENT_KEY – – – gitleaks: shopify-access-token, shopify-custom-access-token, shopify-private-app-access-token, shopify-shared-secret
payment.coinbase.access_token baseline_only PAYMENT_KEY – – – gitleaks: coinbase-access-token
payment.plaid.secret baseline_only PAYMENT_KEY – – – gitleaks: plaid-api-token, plaid-secret-key
payment.gocardless.api_token baseline_only PAYMENT_KEY – – – gitleaks: gocardless-api-token
payment.flutterwave.secret baseline_only PAYMENT_KEY – – – gitleaks: flutterwave-secret-key, flutterwave-encryption-key
payment.finicity.secret baseline_only PAYMENT_KEY – – – gitleaks: finicity-api-token, finicity-client-secret
payment.crypto_exchange.secret baseline_only PAYMENT_KEY – – – gitleaks: kraken-access-token, kucoin-access-token, kucoin-secret-key, bittrex-access-key, bittrex-secret-key
payment.freemius.secret_key baseline_only PAYMENT_KEY – – – gitleaks: freemius-secret-key
commerce.shipping.api_token baseline_only API_KEY – – – gitleaks: duffel-api-token, easypost-api-token, shippo-api-token, lob-api-key; TruffleHog: DuffelToken, Shippo, Lob
saas.atlassian.api_token baseline_only API_KEY – – – gitleaks: atlassian-api-token
saas.notion.api_token baseline_only API_KEY – – – gitleaks: notion-api-token
saas.linear.secret baseline_only API_KEY – – – gitleaks: linear-api-key, linear-client-secret
saas.airtable.token baseline_only API_KEY – – – gitleaks: airtable-api-key, airtable-personnal-access-token
saas.asana.client_secret baseline_only API_KEY – – – gitleaks: asana-client-secret
saas.hubspot.api_key baseline_only API_KEY – – – gitleaks: hubspot-api-key
saas.zendesk.secret_key baseline_only API_KEY – – – gitleaks: zendesk-secret-key
saas.intercom.api_key baseline_only API_KEY – – – gitleaks: intercom-api-key
saas.postman.api_token baseline_only API_KEY – – – gitleaks: postman-api-token
saas.mapbox.secret_token baseline_only API_KEY – – – gitleaks: mapbox-api-token
saas.launchdarkly.access_token baseline_only API_KEY – – – gitleaks: launchdarkly-access-token
saas.typeform.api_token baseline_only API_KEY – – – gitleaks: typeform-api-token
saas.contentful.delivery_token baseline_only API_KEY – – – gitleaks: contentful-delivery-api-token
saas.dropbox.api_token baseline_only API_KEY – – – gitleaks: dropbox-api-token, dropbox-long-lived-api-token, dropbox-short-lived-api-token
saas.adobe.client_secret baseline_only API_KEY – – – gitleaks: adobe-client-secret
saas.facebook.secret baseline_only API_KEY – – – gitleaks: facebook-access-token, facebook-page-access-token, facebook-secret
saas.twitter.secret baseline_only API_KEY – – – gitleaks: twitter-access-secret, twitter-access-token, twitter-api-key, twitter-api-secret, twitter-bearer-token
saas.linkedin.client_secret baseline_only API_KEY – – – gitleaks: linkedin-client-secret
saas.looker.client_secret baseline_only API_KEY – – – gitleaks: looker-client-secret
saas.twitch.api_token baseline_only API_KEY – – – gitleaks: twitch-api-token
saas.etsy.access_token baseline_only API_KEY – – – gitleaks: etsy-access-token
saas.freshbooks.access_token baseline_only API_KEY – – – gitleaks: freshbooks-access-token
saas.squarespace.access_token baseline_only API_KEY – – – gitleaks: squarespace-access-token
saas.misc.api_token baseline_only API_KEY – – – gitleaks: adafruit-api-key, beamer-api-token, cisco-meraki-api-key, finnhub-access-token, flickr-access-token, frameio-api-token, intra42-client-secret, maxmind-license-key, nytimes-access-token, rapidapi-access-token, readme-api-token
saas.sidekiq.credentials baseline_only CREDENTIAL – – – gitleaks: sidekiq-secret, sidekiq-sensitive-url
identity.okta.access_token baseline_only SECRET_TOKEN – – – gitleaks: okta-access-token; TruffleHog: Okta
identity.authress.access_key baseline_only SECRET_TOKEN – – – gitleaks: authress-service-client-access-key
identity.onepassword.secret baseline_only SECRET_TOKEN – – – gitleaks: 1password-secret-key, 1password-service-account-token
key.age_secret_key baseline_only PRIVATE_KEY – – – gitleaks: age-secret-key
data.databricks.api_token baseline_only API_KEY – – – gitleaks: databricks-api-token
data.planetscale.secret baseline_only API_KEY – – – gitleaks: planetscale-api-token, planetscale-oauth-token, planetscale-password
data.confluent.secret baseline_only API_KEY – – – gitleaks: confluent-access-token, confluent-secret-key
data.algolia.api_key baseline_only API_KEY – – – gitleaks: algolia-api-key
data.clickhouse.api_secret baseline_only API_KEY – – – gitleaks: clickhouse-cloud-api-secret-key
data.cloudant.credentials baseline_only API_KEY – – – detect-secrets: CloudantDetector
credential.cli_password baseline_only CREDENTIAL – – – gitleaks: curl-auth-user
credential.file.nuget_config baseline_only CREDENTIAL – – – gitleaks: nuget-config-password
credential.kubernetes_secret baseline_only CREDENTIAL – – – gitleaks: kubernetes-secret-yaml
credential.high_entropy_string baseline_only CREDENTIAL – – – detect-secrets: Base64HighEntropyString, HexHighEntropyString
key.pkcs12_file baseline_only PRIVATE_KEY – – – gitleaks: pkcs12-file
key.symmetric_key baseline_only CRYPTO_KEY – – – –
document.legal_privileged baseline_only dlp.document.legal_privileged – – – –
document.hr baseline_only dlp.document.hr – – – –
document.rnd_ip baseline_only dlp.document.rnd_ip – – – –
action.sensitive_material out_of_scope – dlp_sensitive_material – on –
action.secret_transfer out_of_scope – dlp_secret_transfer – on –
action.destructive_operation out_of_scope – dlp_destructive_operation – off –
action.mcp_runtime_risk out_of_scope – dlp_mcp_runtime_risk – off –
action.mcp_policy out_of_scope – dlp_mcp_policy – off –
public.client_identifier out_of_scope – – – – gitleaks: adobe-client-id, asana-client-id, bitbucket-client-id, discord-client-id, linkedin-client-id, looker-client-id, messagebird-client-id, plaid-client-id, sendbird-access-id, sumologic-access-id, new-relic-user-api-id
public.publishable_key out_of_scope – – – – gitleaks: flutterwave-public-key, lob-pub-api-key, mailgun-pub-key, new-relic-browser-api-token
public.test_key out_of_scope – – – – gitleaks: easypost-test-api-token
public.ssl_certificate out_of_scope – – – – –
public.ip_address out_of_scope – – – – detect-secrets: IPPublicDetector
public.legal_finance_document out_of_scope – – – – –

Entities: 54 shared, 21 ARK only, 99 baseline only, 11 out of scope.

F1 and recall per entity

Exact F1 and recall in percent on the dev split, measured 2026-10-29; same cells and legend as the group table (M1 judges recall). A baseline counts for an entity when it reported a typed span for it. out_of_scope entities are not measured and not listed.

Entity Scope Group Gold F1 Recall
llm.anthropic.api_key shared API_KEY 40 ARK 100.0 / best baseline 100.0 (TruffleHog) ARK 100.0 / best baseline 100.0 (TruffleHog)
llm.openai.api_key shared API_KEY 120 ARK 100.0 / best baseline 98.7 (TruffleHog) ARK 100.0 / best baseline 98.3 (TruffleHog)
llm.huggingface.token shared API_KEY 40 ARK 100.0 / best baseline 100.0 (TruffleHog) ARK 100.0 / best baseline 100.0 (TruffleHog)
llm.xai.api_key shared API_KEY 40 ARK 100.0 / best baseline 100.0 (TruffleHog) ARK 100.0 / best baseline 100.0 (TruffleHog)
llm.groq.api_key shared API_KEY 40 ARK 100.0 / best baseline 100.0 (TruffleHog) ARK 100.0 / best baseline 100.0 (TruffleHog)
llm.replicate.api_token shared API_KEY 40 ARK 100.0 / best baseline 100.0 (TruffleHog) ARK 100.0 / best baseline 100.0 (TruffleHog)
cloud.aws.access_key_id shared CLOUD_KEY 40 ARK 100.0 / best baseline 66.7 (gitleaks) ARK 100.0 / best baseline 100.0 (gitleaks, detect-secrets)
cloud.aws.secret_access_key shared CLOUD_KEY 40 ARK 100.0 / best baseline 21.3 (detect-secrets) ARK 100.0 / best baseline 62.5 (detect-secrets)
cloud.gcp.api_key shared CLOUD_KEY 40 ARK 100.0 / best baseline 97.4 (gitleaks) ARK 100.0 / best baseline 95.0 (gitleaks)
cloud.gcp.oauth_access_token shared CLOUD_KEY 40 ARK 100.0 / best baseline 98.7 (TruffleHog) ARK 100.0 / best baseline 97.5 (TruffleHog)
cloud.gcp.oauth_client_secret shared CLOUD_KEY 40 ARK 100.0 / no baseline ARK 100.0 / no baseline
vcs.github.token shared SECRET_TOKEN 40 ARK 100.0 / best baseline 66.7 (gitleaks, TruffleHog) ARK 100.0 / best baseline 100.0 (gitleaks, TruffleHog, detect-secrets)
vcs.github.fine_grained_pat shared SECRET_TOKEN 40 ARK 100.0 / best baseline 66.7 (gitleaks, TruffleHog) ARK 100.0 / best baseline 100.0 (gitleaks, TruffleHog)
vcs.gitlab.pat shared SECRET_TOKEN 40 ARK 100.0 / best baseline 100.0 (TruffleHog) ARK 100.0 / best baseline 100.0 (gitleaks, TruffleHog, detect-secrets)
vcs.gitlab.token shared SECRET_TOKEN 0 no gold no gold
vcs.gitlab.oauth_app_secret shared API_KEY 0 no gold no gold
registry.npm.access_token shared SECRET_TOKEN 40 ARK 100.0 / best baseline 97.6 (TruffleHog) ARK 100.0 / best baseline 100.0 (TruffleHog)
registry.pypi.upload_token shared SECRET_TOKEN 0 no gold no gold
registry.rubygems.api_token shared SECRET_TOKEN 0 no gold no gold
registry.jfrog.artifactory shared SECRET_TOKEN 0 no gold no gold
devops.terraform_cloud.token shared SECRET_TOKEN 0 no gold no gold
devops.pulumi.api_token shared SECRET_TOKEN 0 no gold no gold
devops.vault.token shared SECRET_TOKEN 0 no gold no gold
devops.doppler.api_token shared SECRET_TOKEN 0 no gold no gold
vcs.bitbucket.client_secret shared API_KEY 0 no gold no gold
vcs.azure_devops.pat shared SECRET_TOKEN 0 no gold no gold
ci.circleci.api_token shared SECRET_TOKEN 0 no gold no gold
ci.travisci.access_token shared SECRET_TOKEN 0 no gold no gold
hosting.vercel.access_token shared CLOUD_KEY 0 no gold no gold
hosting.netlify.access_token shared CLOUD_KEY 0 no gold no gold
hosting.flyio.access_token shared CLOUD_KEY 0 no gold no gold
hosting.heroku.api_key shared CLOUD_KEY 0 no gold no gold
hosting.railway.api_token shared CLOUD_KEY 0 no gold no gold
hosting.cloudflare.api_key shared CLOUD_KEY 0 no gold no gold
hosting.digitalocean.token shared CLOUD_KEY 0 no gold no gold
payment.stripe.secret_key shared PAYMENT_KEY 40 ARK 100.0 / best baseline 49.4 (gitleaks) ARK 100.0 / best baseline 95.0 (gitleaks)
comm.slack.token shared SECRET_TOKEN 40 ARK 100.0 / best baseline 72.7 (TruffleHog) ARK 100.0 / best baseline 100.0 (gitleaks, TruffleHog, detect-secrets)
comm.discord.bot_token shared SECRET_TOKEN 40 ARK 100.0 / best baseline 50.0 (detect-secrets) ARK 100.0 / best baseline 100.0 (detect-secrets)
key.pem_private_key shared PRIVATE_KEY 37 ARK 88.1 / best baseline 56.1 (detect-secrets) ARK 100.0 / best baseline 100.0 (detect-secrets)
token.jwt shared SECRET_TOKEN 40 ARK 100.0 / best baseline 100.0 (detect-secrets) ARK 100.0 / best baseline 100.0 (gitleaks, detect-secrets)
credential.secret_assignment shared CREDENTIAL 80 ARK 90.1 / best baseline 17.9 (gitleaks) ARK 85.0 / best baseline 60.0 (gitleaks, detect-secrets)
credential.password_assignment shared CREDENTIAL 40 ARK 90.4 / best baseline 3.3 (detect-secrets) ARK 82.5 / best baseline 52.5 (detect-secrets)
credential.http_bearer shared SECRET_TOKEN 40 ARK 100.0 / best baseline 4.8 (gitleaks) ARK 100.0 / best baseline 2.5 (gitleaks)
credential.http_basic_auth shared CREDENTIAL 40 ARK 100.0 / no baseline ARK 100.0 / no baseline
credential.url_userinfo shared CREDENTIAL 40 ARK 100.0 / best baseline 44.0 (detect-secrets) ARK 100.0 / best baseline 100.0 (TruffleHog, detect-secrets)
credential.connection_string shared CREDENTIAL 0 no gold no gold
credential.ldap_bind_password shared CREDENTIAL 0 no gold no gold
credential.signed_url_signature shared CREDENTIAL 40 ARK 97.4 / no baseline ARK 95.0 / no baseline
credential.session_cookie shared CREDENTIAL 40 ARK 100.0 / no baseline ARK 100.0 / no baseline
credential.csrf_token shared SECRET_TOKEN 40 ARK 91.9 / no baseline ARK 85.0 / no baseline
credential.password_hash shared PASSWORD_HASH 40 ARK 91.9 / no baseline ARK 85.0 / no baseline
content.source_code shared dlp.content.source_code 214 documents ARK 99.1 (opt-in profile) ARK 99.5 (opt-in profile)
content.database_dump shared dlp.content.database_dump 0 no gold no gold
content.system_log shared dlp.content.system_log 456 documents ARK 0.0 (opt-in profile) ARK 0.0 (opt-in profile)
payment.stripe.webhook_secret ark_only PAYMENT_KEY 40 ARK 100.0 / no baseline ARK 100.0 / no baseline
registry.dockerhub.access_token ark_only SECRET_TOKEN 0 no gold no gold
registry.cratesio.api_token ark_only SECRET_TOKEN 0 no gold no gold
registry.packagist.token ark_only SECRET_TOKEN 0 no gold no gold
hosting.render.api_key ark_only CLOUD_KEY 0 no gold no gold
crypto.ethereum.private_key ark_only CRYPTO_KEY 40 ARK 100.0 / no baseline ARK 100.0 / no baseline
crypto.bitcoin.wif ark_only CRYPTO_KEY 40 ARK 100.0 / no baseline ARK 100.0 / no baseline
credential.url_userinfo_token ark_only SECRET_TOKEN 0 no gold no gold
credential.url_query_secret ark_only CREDENTIAL 40 ARK 97.4 / no baseline ARK 95.0 / no baseline
identifier.de.vat_id ark_only dlp.de.vat_id 32 ARK 18.2 (opt-in profile) ARK 12.5 (opt-in profile)
identifier.de.commercial_register ark_only dlp.de.commercial_register_number 32 ARK 50.0 (opt-in profile) ARK 100.0 (opt-in profile)
identifier.de.bsnr ark_only dlp.de.facility_number_bsnr 32 ARK 28.6 (opt-in profile) ARK 25.0 (opt-in profile)
identifier.record.case ark_only dlp.record.case_id 32 ARK 18.2 (opt-in profile) ARK 12.5 (opt-in profile)
identifier.record.contract ark_only dlp.record.contract_id 32 ARK 18.2 (opt-in profile) ARK 12.5 (opt-in profile)
identifier.record.claim ark_only dlp.record.claim_id 32 ARK 18.2 (opt-in profile) ARK 12.5 (opt-in profile)
identifier.record.order ark_only dlp.record.order_id 32 ARK 18.2 (opt-in profile) ARK 12.5 (opt-in profile)
identifier.record.invoice ark_only dlp.record.invoice_id 32 ARK 18.2 (opt-in profile) ARK 12.5 (opt-in profile)
identifier.project ark_only dlp.project_id 32 ARK 18.2 (opt-in profile) ARK 12.5 (opt-in profile)
identifier.organization ark_only dlp.organization_id 32 ARK 18.2 (opt-in profile) ARK 12.5 (opt-in profile)
content.business_metric ark_only dlp.internal.business_metric 0 no gold no gold
content.sql ark_only dlp.content.sql 10 documents ARK 90.9 (opt-in profile) ARK 100.0 (opt-in profile)
vcs.gitlab.session_cookie baseline_only CREDENTIAL 0 no gold no gold
comm.slack.app_config_token baseline_only SECRET_TOKEN 0 no gold no gold
llm.cohere.api_key baseline_only API_KEY 0 no gold no gold
llm.perplexity.api_key baseline_only API_KEY 0 no gold no gold
llm.privateai.api_key baseline_only API_KEY 0 no gold no gold
cloud.aws.bedrock_api_key baseline_only CLOUD_KEY 0 no gold no gold
cloud.alibaba.access_key baseline_only CLOUD_KEY 0 no gold no gold
cloud.azure.entra_client_secret baseline_only CLOUD_KEY 0 no gold no gold
cloud.azure.storage_account_key baseline_only CLOUD_KEY 0 no gold no gold
cloud.gcp.service_account_key baseline_only CLOUD_KEY 0 no gold no gold
cloud.ibm.credentials baseline_only CLOUD_KEY 0 no gold no gold
cloud.yandex.credentials baseline_only CLOUD_KEY 0 no gold no gold
cloud.scalingo.api_token baseline_only CLOUD_KEY 0 no gold no gold
registry.clojars.api_token baseline_only SECRET_TOKEN 0 no gold no gold
devops.prefect.api_token baseline_only SECRET_TOKEN 0 no gold no gold
devops.infracost.api_token baseline_only SECRET_TOKEN 0 no gold no gold
devops.octopus_deploy.api_key baseline_only SECRET_TOKEN 0 no gold no gold
devops.harness.api_key baseline_only SECRET_TOKEN 0 no gold no gold
devops.snyk.api_token baseline_only SECRET_TOKEN 0 no gold no gold
devops.sonar.api_token baseline_only SECRET_TOKEN 0 no gold no gold
devops.codecov.access_token baseline_only SECRET_TOKEN 0 no gold no gold
devops.sourcegraph.access_token baseline_only SECRET_TOKEN 0 no gold no gold
ci.droneci.access_token baseline_only SECRET_TOKEN 0 no gold no gold
hosting.openshift.user_token baseline_only CLOUD_KEY 0 no gold no gold
hosting.defined_networking.api_token baseline_only CLOUD_KEY 0 no gold no gold
hosting.fastly.api_token baseline_only CLOUD_KEY 0 no gold no gold
hosting.settlemint.access_token baseline_only CLOUD_KEY 0 no gold no gold
observability.datadog.access_token baseline_only API_KEY 0 no gold no gold
observability.newrelic.key baseline_only API_KEY 0 no gold no gold
observability.sentry.token baseline_only API_KEY 0 no gold no gold
observability.grafana.token baseline_only API_KEY 0 no gold no gold
observability.dynatrace.api_token baseline_only API_KEY 0 no gold no gold
observability.sumologic.access_token baseline_only API_KEY 0 no gold no gold
comm.webhook_url baseline_only SECRET_TOKEN 0 no gold no gold
comm.discord.api_credentials baseline_only API_KEY 0 no gold no gold
comm.telegram.bot_token baseline_only SECRET_TOKEN 0 no gold no gold
comm.twilio.api_key baseline_only API_KEY 0 no gold no gold
comm.sendgrid.api_key baseline_only API_KEY 0 no gold no gold
comm.brevo.api_key baseline_only API_KEY 0 no gold no gold
comm.mailgun.key baseline_only API_KEY 0 no gold no gold
comm.mailchimp.api_key baseline_only API_KEY 0 no gold no gold
comm.messagebird.api_token baseline_only API_KEY 0 no gold no gold
comm.mattermost.access_token baseline_only API_KEY 0 no gold no gold
comm.sendbird.access_token baseline_only API_KEY 0 no gold no gold
comm.gitter.access_token baseline_only API_KEY 0 no gold no gold
payment.square.access_token baseline_only PAYMENT_KEY 0 no gold no gold
payment.shopify.token baseline_only PAYMENT_KEY 0 no gold no gold
payment.coinbase.access_token baseline_only PAYMENT_KEY 0 no gold no gold
payment.plaid.secret baseline_only PAYMENT_KEY 0 no gold no gold
payment.gocardless.api_token baseline_only PAYMENT_KEY 0 no gold no gold
payment.flutterwave.secret baseline_only PAYMENT_KEY 0 no gold no gold
payment.finicity.secret baseline_only PAYMENT_KEY 0 no gold no gold
payment.crypto_exchange.secret baseline_only PAYMENT_KEY 0 no gold no gold
payment.freemius.secret_key baseline_only PAYMENT_KEY 0 no gold no gold
commerce.shipping.api_token baseline_only API_KEY 0 no gold no gold
saas.atlassian.api_token baseline_only API_KEY 0 no gold no gold
saas.notion.api_token baseline_only API_KEY 0 no gold no gold
saas.linear.secret baseline_only API_KEY 0 no gold no gold
saas.airtable.token baseline_only API_KEY 0 no gold no gold
saas.asana.client_secret baseline_only API_KEY 0 no gold no gold
saas.hubspot.api_key baseline_only API_KEY 0 no gold no gold
saas.zendesk.secret_key baseline_only API_KEY 0 no gold no gold
saas.intercom.api_key baseline_only API_KEY 0 no gold no gold
saas.postman.api_token baseline_only API_KEY 0 no gold no gold
saas.mapbox.secret_token baseline_only API_KEY 0 no gold no gold
saas.launchdarkly.access_token baseline_only API_KEY 0 no gold no gold
saas.typeform.api_token baseline_only API_KEY 0 no gold no gold
saas.contentful.delivery_token baseline_only API_KEY 0 no gold no gold
saas.dropbox.api_token baseline_only API_KEY 0 no gold no gold
saas.adobe.client_secret baseline_only API_KEY 0 no gold no gold
saas.facebook.secret baseline_only API_KEY 0 no gold no gold
saas.twitter.secret baseline_only API_KEY 0 no gold no gold
saas.linkedin.client_secret baseline_only API_KEY 0 no gold no gold
saas.looker.client_secret baseline_only API_KEY 0 no gold no gold
saas.twitch.api_token baseline_only API_KEY 0 no gold no gold
saas.etsy.access_token baseline_only API_KEY 0 no gold no gold
saas.freshbooks.access_token baseline_only API_KEY 0 no gold no gold
saas.squarespace.access_token baseline_only API_KEY 0 no gold no gold
saas.misc.api_token baseline_only API_KEY 0 no gold no gold
saas.sidekiq.credentials baseline_only CREDENTIAL 0 no gold no gold
identity.okta.access_token baseline_only SECRET_TOKEN 0 no gold no gold
identity.authress.access_key baseline_only SECRET_TOKEN 0 no gold no gold
identity.onepassword.secret baseline_only SECRET_TOKEN 0 no gold no gold
key.age_secret_key baseline_only PRIVATE_KEY 0 no gold no gold
data.databricks.api_token baseline_only API_KEY 0 no gold no gold
data.planetscale.secret baseline_only API_KEY 0 no gold no gold
data.confluent.secret baseline_only API_KEY 0 no gold no gold
data.algolia.api_key baseline_only API_KEY 0 no gold no gold
data.clickhouse.api_secret baseline_only API_KEY 0 no gold no gold
data.cloudant.credentials baseline_only API_KEY 0 no gold no gold
credential.cli_password baseline_only CREDENTIAL 0 no gold no gold
credential.file.nuget_config baseline_only CREDENTIAL 0 no gold no gold
credential.kubernetes_secret baseline_only CREDENTIAL 0 no gold no gold
credential.high_entropy_string baseline_only CREDENTIAL 0 no gold no gold
key.pkcs12_file baseline_only PRIVATE_KEY 0 no gold no gold
key.symmetric_key baseline_only CRYPTO_KEY 0 no gold no gold
document.legal_privileged baseline_only dlp.document.legal_privileged planned / not implemented planned / not implemented planned / not implemented
document.hr baseline_only dlp.document.hr planned / not implemented planned / not implemented planned / not implemented
document.rnd_ip baseline_only dlp.document.rnd_ip planned / not implemented planned / not implemented planned / not implemented

Measured entities: 171, 46 with gold, 125 without gold.

Latency

Measured 2026-10-29 on main 9cb48cc.

Programme Measurement Value Target
PII 100 KiB p95, Python bindings 145.9 ms ≤ 10 ms
PII 100 KiB p95, native (DE 155 ms, EN 38 ms) 150.0 ms ≤ 10 ms
DLP 100 KiB p95 11.7 ms throughput >= gitleaks and 100 KiB p95 <= ~15 ms
DLP scan throughput 8.16 MiB/s (gitleaks 4.16 MiB/s) ≥ gitleaks

PII latency is not yet at target (value from 2026-10-24, not re-measured; decision 2026-10-24: latency work last).

Configuration

Every rule above can be switched on or off on its own with the rules execution gate; missing IDs inherit the shared defaults (all PII rules on; credential/secret DLP rules on, broader DLP families opt-in). levels (l1, l2, l3) switch layers, models switch whole producers (native:pii, native:dlp, …). pii_mode and dlp_mode choose the output mode: strict (default; every finding scores 1.0), balanced or recall (model scores with thresholds 0.50 and 0.30).

Python:

scanner.set_execution_gates({
    "levels": {"l1": True, "l2": False, "l3": False},
    "models": {"native:mcp_runtime_risk": False, "external:internal_token": False},
    "rules": {"pii_email": False, "dlp_password_assignment": False},
})

Rust:

scanner.set_execution_gates(
    ScanGateMatrix::levels(true, false, false)
        .with_model("native:mcp_runtime_risk", false)
        .with_rule("pii_email", false),
);

Ark API YAML:

gates:
  l1: true
  l2: false
  l3: false
  pii_mode: strict
  dlp_mode: strict
  rules:
    pii_employee_id: true
    dlp_sql_statement: false
  models:
    native:mcp_runtime_risk: false

See the configuration reference for all gates and the L1 rule catalog for every rule ID, score and default.