Skip to main content

HPD lead-paint resolution rulebook

Every HPD lead order, every way it can be resolved (contest, cure, dismiss or postpone, overdue or not), the documents required, the professionals who sign them, and the combinations that occur when several orders are cited together. It is written for compliance staff and for engineers who need the legal truth the code encodes.

This page is the human-readable mirror of domain/src/programs/nyc-lead-paint/orderRegistry.ts. When the two disagree, the verbatim HPD forms win and both are corrected. The broader legal model (families, services, exemptions, roles) is in system-model.md. How a project moves through the app is in running a project.

The order matrix follows the HPD NOV CERT LEAD (621/622/623/625) and NOV/NOF CERT LEAD (616/617/624) certification forms with their instructions, and all six L-06 contestation forms.


0. Structural model — firms, deployments, professionals, documents​

App mapping. "Firm" and "deployment" are the rulebook's legal and workflow vocabulary, not literal tables. A firm is a tenants row (there is no firms table). A deployment is an inspections row, distinguished by service_type (xrf, paint_chip, dust_wipe, abatement) and carrying its own tenant_id; there is no deployments table.

One project, many deployments, a firm per deployment​

One project per unit-job. It holds multiple deployments (field work orders); the firm and the EPA license attach to the deployment, and each generated document inherits its deployment's firm. This is not a parent-and-linked-projects model and not a single requires_abatement flag. One abatement supervisor affidavit lists multiple violation numbers (616s, 617s and 624s cured by one abatement) and prints the abatement firm's EPA number.

Firms​

CodeFirmRole
SECSecure Environmental GroupXRF, paint-chip and dust-wipe testing; also holds abatement capability
ABAAbated NYCabatement work
INDIndependent third partyclearance dust-wipe (optional; certificate of insurance on file), with its own EPA certification

Deployments​

CodeDeploymentFirmWhat it doesProduces
D-INSPInspectionSECone professional per visit: XRF, paint-chip and dust-wipe testinginspection report, XRF and paint-chip affidavits, contestation testing documents
D-ABATAbatementABAthe abatement workabatement supervisor affidavit (unions all cured violation numbers)
D-DWSClearance dust-wipeSEC or IND (selectable)post-abatement clearance wipes, independent of the abaterclearance chain of custody, sampler affidavit, lab analysis

Professionals​

CodeProfessionalCertificationSigns
INSPEPA-certified Inspector / Risk AssessorEPA L/Q (40 CFR 745)inspection report, XRF affidavit, paint-chip affidavit
ABSUPLead Abatement Supervisor / Project Designer (plus workers)EPA abatementabatement supervisor affidavit
SAMPDust-wipe samplerEPA clearancesampler affidavit (date and dwelling)
LABNYS ELAP-certified laboratoryELAPdust and paint-chip lab analyses
NOTNotary—notarizes affidavits, certification and contestation
OWNOwner, managing agent or officeron HPD Property Registrationthe certification and the contestation (the filer)

Document catalog​

CodeDocumentByFirm
CERT-HCertification of Correction — hazard (616-617-624 cert)OWN + NOTfiler
CERT-TCertification of Correction — turnover (621-622-623-625 cert)OWN + NOTfiler
CONTESTContestation form (per-order L-06)OWN + NOTfiler
AF5Affidavit of Compliance AF-5 (overdue hazard)OWN + NOTfiler
DRDismissal Request inspection and fee (overdue hazard)OWNfiler
DISM-TDismissal request to the Audit Unit (overdue turnover, no fee)OWNfiler
POST1 / POST2First / second postponement requestOWNfiler
INSP-RPTInspection report (EPA Inspector/RA)INSPSEC
XRF-AFFNotarized XRF affidavitINSP + NOTSEC
PC-RPTPaint-chip sampling reportINSPSEC
PC-AFFNotarized XRF and paint-chip affidavitINSP + NOTSEC
PC-LABState-lab analysis of a paint-chip sampleLABvendor
ABAT-AFFAbatement supervisor affidavit (§27-2056.11; start and end dates; firm contact; lists all cured violation numbers)ABSUP + NOTABA
ABAT-EPAEPA certification of the abatement firm, workers and supervisorsABAABA
WORK-DESCPer-room work location and description or invoicesABAABA
DUST-LABState-lab analysis of all clearance dust samplesLABvendor
SAMP-AFFDust-wipe sampler affidavit (date and dwelling)SAMP + NOTSEC / IND
SAMP-EPAEPA certification of the dust-wipe sampler (valid on the sample date)SAMPSEC / IND
INSP-EPAEPA certification of the Inspector/RA (valid on the inspection date)INSPSEC
COFOCertificate of Occupancy (building age 1960 or later)owner records—
LEASELease or tenancy documentation (initial lease date)owner records—
NOVCopy of the Notice of Violationowner records—

The abatement proof-set is ABAT-AFF, ABAT-EPA, WORK-DESC, DUST-LAB, SAMP-AFF and SAMP-EPA. It is identical whether filed under a CERT (on time) or an AF-5 or DISM (overdue); only the cover form changes.


1. Per-order resolution chart​

"≥Nd" means the filing must be made at least N days before the correct-by date (the registry's contestLeadDays). Penalties are from the forms.

HAZARD family (occupied unit) — overdue route is AF-5, a Dismissal Request and a fee​

Key asymmetry. The hazard Certification of Correction has only the abatement / "work completed" section. There is no Option 4 XRF dismissal and no Option 5 paint-chip section on the hazard certification. A hazard's no-work, prove-no-LBP route therefore runs through the contestation form (≥6d before the correct-by date), never the certification. The hazard certification also embeds the abatement supervisor affidavit, with a "Violation Number(s)" union field.

616 — Presumed lead-based paint hazard​

StatePathDocumentsSigners / firmDeployments
not overdueContest (≥6d) — building age, exemption, 3a XRF-no-LBP, or 3b XRF-inconclusive plus paint-chipCONTEST + NOV + (COFO, or nothing for exemption, or INSP-RPT + INSP-EPA + XRF-AFF, or additionally PC-RPT + PC-AFF + PC-LAB)OWN, NOT, (INSP for a content ground)D-INSP (only for a content ground)
not overdueCure = abate → CERT-HCERT-H + abatement proof-setOWN, NOT, ABSUP, SAMP, LABD-ABAT → D-DWS
not overduePostpone (≥6d)POST1 / POST2OWN—
overdueAF-5 (abate, then file)AF5 + DR (fee) + abatement proof-setOWN, NOT, ABSUP, SAMP, LABD-ABAT → D-DWS

An XRF-negative result resolves a 616 only through the contest channel, never the certification.

617 — HPD-confirmed positive hazard (no content dismissal; it must be abated)​

StatePathDocumentsSigners / firmDeployments
not overdueContest (≥6d) — issuance grounds only: building age, exemptionCONTEST + NOV + (COFO)OWN, NOT—
not overdueCure = abate → CERT-HCERT-H + abatement proof-setOWN, NOT, ABSUP, SAMP, LABD-ABAT → D-DWS
not overduePostponePOST1 / POST2OWN—
overdueAF-5AF5 + DR (fee) + abatement proof-setOWN, NOT, ABSUP, SAMP, LABD-ABAT → D-DWS

The work is the same overdue or not; only the cover document changes (certification or AF-5).

624 — Inconclusive XRF, or positive on a ceramic or metal substrate (XRF cannot resolve it; paint-chip or abate)​

StatePathDocumentsSigners / firmDeployments
not overdueContest (≥6d) — paint-chip-no-LBP only (the L-06 624 form, rev 11/2025, also covers positive-on-ceramic/metal)CONTEST + NOV + PC-RPT + INSP-EPA + PC-AFF + PC-LABOWN, NOT, INSP, LABD-INSP
not overdueCure = abate → CERT-HCERT-H + abatement proof-setOWN, NOT, ABSUP, SAMP, LABD-ABAT → D-DWS
not overduePostponePOST1 / POST2OWN—
overdueAF-5AF5 + DR (fee) + abatement proof-setOWN, NOT, ABSUP, SAMP, LABD-ABAT → D-DWS

616 / 624 four-state shape. (a) Not overdue and contestable: contest. (b) Not overdue but known positive from a prior standard test: skip the contest, abate, file the certification. (c) Contested and it came back positive: abate, file the certification. (d) Overdue: abate, file the AF-5. States (b) and (c) depend on facts about the violation instance (a prior test result, a contest outcome).

TURNOVER family (vacant-unit turnover) — overdue route is Audit Unit dismissal, no fee​

The turnover certification (621/622/623/625) contains the dismissal options itself: Option 3 = abate, Option 4 = XRF dismissal, Option 5 = paint-chip dismissal. Hard rule on the form: Options 4 and 5 cannot be submitted for a friction surface that HPD tested positive and for which an Order 617 was issued.

621 — Turnover, presumed​

StatePathDocumentsSigners / firmDeployments
not overdueContest (≥5d) — tenancy, building age, exemption, 4a/4b XRF, or 4c paint-chipCONTEST + NOV + (LEASE, COFO, nothing, INSP-RPT + INSP-EPA + XRF-AFF, or additionally PC-RPT + PC-AFF + PC-LAB)OWN, NOT, (INSP for a content ground)D-INSP (content ground)
not overdueCure → CERT-T Option 4 (XRF-no-LBP, no work)CERT-T + INSP-RPT + INSP-EPA + XRF-AFFOWN, NOT, INSPD-INSP
not overdueCure → CERT-T Option 5 (paint-chip)CERT-T + INSP-RPT + PC-RPT + INSP-EPA + PC-AFF + PC-LABOWN, NOT, INSP, LABD-INSP
not overdueCure → CERT-T Option 3 (abate)CERT-T + abatement proof-setOWN, NOT, ABSUP, SAMP, LABD-ABAT → D-DWS
not overduePostponePOST1 / POST2OWN—
overdueDismissal (the same Option 3/4/5 documents, to the Audit Unit)DISM-T + the chosen option's document setper optionper option

622 — Turnover, "positive" but XRF-dismissable (Option 4), unless an Order 617 is open​

StatePathDocumentsSigners / firmDeployments
not overdue, no open 617Cure → CERT-T Option 4 (XRF-no-LBP)CERT-T + INSP-RPT + INSP-EPA + XRF-AFFOWN, NOT, INSPD-INSP
not overdue, no open 617Cure → CERT-T Option 3 (abate)CERT-T + abatement proof-setOWN, NOT, ABSUP, SAMP, LABD-ABAT → D-DWS
not overdueContest (≥5d) — tenancy, building age, exemption (no content ground)CONTEST + NOV + (LEASE, COFO, or nothing)OWN, NOT—
open 617 presentOptions 4 and 5 are barred; abate → CERT-T Option 3CERT-T + abatement proof-setOWN, NOT, ABSUP, SAMP, LABD-ABAT → D-DWS
not overduePostponePOST1 / POST2OWN—
overdueDismissal (Option 3 or 4 documents, to the Audit Unit)DISM-T + the chosen option's document setper optionper option

623 — Turnover, general and audit-tied (extra ground: surface condition)​

The 623 polices turnover compliance with the audit, where 621, 622 and 625 police it with the hazards. HPD issues it when the occupant moved in within 10 years and the owner failed to produce turnover documents under a Record Production Order. It resolves either way: produce the 10-year turnover records, or cure it like any turnover (certification Options 3/4/5, or the contest grounds below).

StatePathDocumentsSigners / firmDeployments
not overdueContest (≥5d) — tenancy (<10 years of the RPO date), building age, exemption, XRF, paint-chip, or surface conditionCONTEST + NOV + ground documents (surface condition is an attestation; HPD may inspect)OWN, NOT, (INSP for a content ground)D-INSP (content ground)
not overdueCure → CERT-T Option 3/4/5as 621per optionper option
not overduePostponePOST1 / POST2OWN—
overdueDismissalDISM-T + the chosen option's document setper optionper option

625 — Turnover, inconclusive​

The contest route accepts paint-chip only on the violation surface. The certification route allows Option 4 (negative friction XRF) when no 624 or 617 is open, because the firm's XRF reads a definitive negative where HPD's instrument was inconclusive. A 625 cannot be dismissed while its paired 624 is open.

StatePathDocumentsSigners / firmDeployments
not overdue, no open 624Contest (≥5d) — content is (a) paint-chip on the violation surface and (b) XRF or XRF plus paint-chip on all other friction surfacesCONTEST + NOV + PC-RPT + PC-LAB + INSP-RPT + INSP-EPA + PC-AFF / XRF-AFFOWN, NOT, INSP, LABD-INSP
not overdue, no open 624 or 617Cure → CERT-T Option 4 (negative friction XRF, no work)CERT-T + INSP-RPT + INSP-EPA + XRF-AFFOWN, NOT, INSPD-INSP
not overdueCure → CERT-T Option 5 (paint-chip) or Option 3 (abate)CERT-T + (paint-chip set or abatement proof-set)per optionD-INSP, or D-ABAT → D-DWS
open 624 presentdismissal blocked — resolve the 624 first———
not overduePostponePOST1 / POST2OWN—
overdueDismissalDISM-T + the chosen option's document setper optionper option

Penalties (per the forms): 621 $250/day up to $10,000 · 622 $250/day up to $10,000 · 623 $1,500 per violation · 625 $250/day up to $10,000.

RECORDS, LL31 and LEGACY — no field testing or abatement​

618 / 619 / 620 — RPO records audit (overdue goes to the Audit Unit, no fee)​

StatePathDocumentsSigners / firmDeployments
anyRecords production → certification (618-619-620 cert)RPO record set: turnover-vacancy, annual-notice, visual-investigation and safe-work-practices sample formsOWN (records)none

626 — Local Law 31 (five-year XRF testing violation)​

StatePathDocumentsSigners / firmDeployments
anySubmit the XRF inspection report to the Audit Unit (626 cert)INSP-RPT (positive and negative surfaces) + INSP-EPA + (XRF-AFF if tested after Aug 9, 2020)OWN, INSPD-INSP

555 (AF-3) and 614 — legacy​

StatePathDocumentsSigners / firmDeployments
555AF-3 (work before Aug 1, 2004)AF-3 affidavit + dust-wipeOWN, SAMP, LABD-DWS
614Abateabatement proof-setOWN, ABSUP, SAMP, LABD-ABAT → D-DWS

2. The five resolution shapes​

Every path collapses into one of five shapes, which drive deployments and workflow:

ShapeDeploymentsField professionalsDocument outputTypical workspace
S1 — Contest (non-content): building age, exemption, tenancy, surface conditionnonenone (owner records)CONTEST + NOV + COFO / LEASEDecide, File, Money
S2 — Contest or dismiss by XRF: presumed surfaces, turnover Option 4D-INSPINSPCONTEST or CERT-T + INSP-RPT + INSP-EPA + XRF-AFFDecide, Work, File, Money
S3 — Contest or dismiss by paint-chip: inconclusive surfaces, Option 5D-INSPINSP, LABplus PC-RPT + PC-AFF + PC-LABDecide, Work, File, Money
S4 — Abate: positive, overdue hazard, blocked turnoverD-ABAT → D-DWSABSUP, SAMP, LABCERT / AF-5 / DISM + abatement proof-setall four
S5 — Records only: RPO, LL31none (D-INSP for 626)(INSP for 626)record set or XRF reportDecide, File, Money

Overdue shifts the shape. An overdue hazard (616, 617, 624) can no longer contest, so it is forced to S4 (abate) plus AF-5 and the fee. An overdue turnover keeps its cheapest shape (S2, S3 or S4) but files a dismissal to the Audit Unit (no fee) instead of a certification.


3. Reusing existing XRF data​

When Secure has already run a full XRF inspection (Local Law 31, a prior turnover, an initial inspection), the component-level readings persist. A later violation on specific components does not require a new field visit: a violation-scoped subset of the stored XRF report — a "limited contest XRF report" — is regenerated, covering strictly the HPD-cited components. So XRF (S2) can resolve with zero deployments when prior data covers the cited components. Paint-chip (S3) is never reused: lab data is immutable (chain of custody), so paint-chips are always fresh, with violation-specific room and component descriptions.

Action-level check for uploaded third-party reports. All of the firm's own reports were taken at the 0.5 standard, so no check is needed on its own data. When a client uploads an XRF report from another company, the report's action level must be validated at upload: a report tested at 1.0 (before Dec 2021) cannot support an exemption, because a retest at 0.5 is required, and its "negatives" between 0.5 and 0.9 are positives today. Old 1.0-level reports still satisfy the Local Law 31 testing requirement itself.

Per-reading routing:

  • negative (reusable) → regenerate the limited XRF report, no visit.
  • inconclusive → fresh paint-chip (S3); XRF cannot resolve it.
  • positive on a metal or ceramic substrate → fresh paint-chip (S3); XRF can read the metal and report a false positive, which the 624 form (rev 11/2025) now covers explicitly.
  • positive on any other substrate (wood, plaster and so on) → a genuine positive → abate (S4).
  • partially covered (a cited component was never XRF-tested) → go back with a supplemental D-INSP and a manual override to add the reading to the CSV; merge into the one limited report.

Dates and signatures (HPD needs wet-signed originals):

  • the limited contest report carries the original inspection date (when the readings were taken);
  • the XRF affidavit gets the current date and a fresh wet signature on every filing and is never reprinted;
  • the Inspector's EPA certification must have been valid on the original test date.

HPD location grammar and human reconciliation​

HPD hazard descriptions are a nested positional address that parses into structured fields:

"1st WINDOW FRAME FROM WEST AT NORTH WALL IN THE 2nd BATHROOM FROM EAST LOCATED AT APT 6C, 6th STORY, 1st APARTMENT FROM NORTH AT EAST"

FieldValue
component_typeWINDOW FRAMEfeeds friction-surface classification
component_ordinal / from_dir1st / WEST
wallNORTH
room_type / room_ordinal / from_dirBATHROOM / 2nd / EAST
apartment / story6C / 6
apartment_ordinal / from_dir / at_dir1st / NORTH / EAST

Grammar: building → apartment position (ordinal-from-direction plus at-side) → story → room (ordinal-from-direction) → wall → component (ordinal-from-direction), with a compass orientation to render.

Reconciliation is a human step, assisted by structure. Secure's report uses colloquial labels ("living room – door to switch"); HPD uses the positional address. The derived fields and compass make the match fast; the reused reading is then re-labeled to the violation's description in the limited contest report. Matching the original reading to the violation's reading stays human-in-the-loop.


4. Contest grounds​

Every L-06 contestation form's numbered grounds, and the registry's contestGrounds:

OrderForm (rev)Numbered grounds on the formRegistry contestGrounds
616L-06 (616) 7/20211 building age (1960 or later, plus CofO) · 2 HPD exemption · 3a XRF-no-LBP · 3b XRF-inconclusive plus paint-chipbuilding_age, exemption, content_xrf, content_paintchip
621L-06 (621) 6/20241 tenancy (moved in before 8/2/2004) · 2 building age · 3 exemption · 4a XRF unit · 4b XRF friction negative and others not peeling/smooth · 4c XRF-inconclusive plus paint-chiptenancy, building_age, exemption, content_xrf, content_paintchip
622L-06 (622) 6/20241 tenancy · 2 building age · 3 exemption — no content groundtenancy, building_age, exemption (the 622 XRF route is certification Option 4, not a contest)
623L-06 (623)1 tenancy (<10 years of the RPO date) · 2 building age · 3 exemption · 4a/4b XRF · 4c paint-chip · 5 surface conditiontenancy, building_age, exemption, content_xrf, content_paintchip, surface_condition
624L-06 (624) 11/2025paint-chip-no-LBP only (also covers positive-on-ceramic/metal substrates)content_paintchip
625L-06 (625) 6/20241 tenancy · 2 building age · 3 exemption · 4 content = (a) paint-chip on the violation surface (XRF not acceptable there) and (b) XRF or XRF plus paint-chip on all other friction surfacestenancy, building_age, exemption, content_paintchip

617: issuance-grounds-only contest (building age, exemption; no content ground).


5. Combination scenarios​

One project per unit-job. Multiple orders cited together split into bundles by their cheapest cure. The rule is to contest or test before abating, because abatement is the expensive last resort. Blocker rules re-route the cheap path to abatement when a paired positive or inconclusive hazard is open.

#Cited orders (same unit)Bundles → shapeDeploymentsNotes
C1616 aloneS2 (XRF), S1 (age/exemption) or S4 (abate)D-INSP, or D-ABAT → D-DWSthe owner picks the cheapest viable path
C2617 aloneS4D-ABAT → D-DWSno dismissal possible
C3624 aloneS3 (paint-chip) or S4D-INSP, or D-ABAT → D-DWSXRF cannot resolve it
C4621 aloneS2, S3 or S4per optionturnover, no fee if overdue
C5622 alone (no 617)S2 (XRF Option 4) or S4D-INSPXRF-dismissable
C6622 + 617622 → S4 (blocked), 617 → S4D-ABAT → D-DWSone ABAT-AFF unions both numbers
C7616 + 617 (classic co-issue)616 → S2 (XRF), 617 → S4D-INSP and D-ABAT → D-DWSsplit: contest or XRF the 616, abate the 617
C8625 + 624625 dismissal blocked, 624 → S3 or S4D-INSP, or D-ABAT → D-DWSresolve the 624 first
C9616 + 621 (hazard plus turnover, presumed)both S2D-INSP (one visit)one inspection clears both
C10multi-unit or multi-order abatementall S4 → one D-ABATD-ABAT → D-DWSone ABAT-AFF lists every cured violation number (the union)
C11RPO (618–620) + a hazardS5 + (S2 or S4)none + per optionthe records bundle is independent
C12all overdue hazardsall S4 + AF-5 + feeD-ABAT → D-DWSdismissal-request inspection

Clearance firm selection (D-DWS). Whenever a project has a D-ABAT it needs a D-DWS, and the D-DWS firm is selectable (SEC or IND). It must be independent of whichever firm performed the abatement for the clearance to be valid (28 RCNY: "third-party, independent of the owner and any individual or firm that performs the work"). The default is SEC unless the owner picks IND; because SEC also holds abatement capability, if SEC performed the abatement then SEC cannot wipe that job and IND is used. Local Law 31 practice rule: contract the LL31 XRF test as a standalone engagement, and contract any abatement separately, only after results exist. The §27-2056.4(a-1) / 28 RCNY §11-04(b) tester bar is "not the owner, agent, or any contractor hired to perform remediation," judged at test time, so a bundled test-and-fix engagement is the one edge to avoid.


6. HPD Open Data field contract​

Source: the HPD Violations dataset wvxf-dwi5 (filtered by bin, synced daily by the hpd-violations feed into public_events). Everything in the rulebook keys on these fields.

HPD fieldpublic_events columnLogic use
ordernumbercitation_codethe rulebook (616–626) → shape, firm, documents
newcorrectbydate / originalcorrectbydatedue_date = new, else originalthe deadline engine reads the effective date
certifieddateclosed_date (when not open)certification versus AF-5 timing
currentstatusid (with status and date)status_norm, status_detailopen, closed or dismissed; postponement is status id 6 (granted) or 7 (denied), or new ≠ original
novdescriptiondescriptionparsed into location and component fields (§3 grammar)
apartmentunit link (unit_id)unit linkage
class, story, the certify-by datesraw_dataseverity and display

Not an HPD field: substrate (ours, from the XRF CSV) and the parsed location fields (derived).


7. Clearance independence​

28 RCNY requires the post-abatement clearance dust-wipe sampler to be independent of the abater. The rule is about firms, not about any two tenants; a single tenant may legitimately hold both an abatement and an inspection license and subcontract one side to a firm with no Complied login, so the app cannot know the subcontracting facts of every job. The app surfaces the conflict and the person adjudicates it. It never blocks on this rule.

Three checks fire at three moments, each at the earliest point its own evidence exists:

WhenCheckWhereSeverity
Collaborator invitedWould this tenant hold both the abatement and the clearance role on this project?collaboratorRoleIndependenceWarning in collaboratorRoles.tswarning; the invite is still allowed
Visit scheduledDoes the track's clearance visit share a tenant_id with one of its abatement visits?clearanceIndependenceWarning in serviceRequirements.ts, shown on the visit drawerwarning; scheduling is still allowed
Field job completedThis is a clearance visit — confirm the firm splitfieldJobReadiness.ts, shown in the field job's readiness panelwarning; completion is still allowed

The collaborator role catalog (COLLABORATOR_ROLES) makes the invite-time check possible: each role declares what it performs (abatement, clearance, inspection or none), so a rule about who abates versus who samples is evaluated against data rather than free text.

Nothing prevents scheduling an abatement visit and a clearance visit under the same tenant_id; a visit can only be created by the tenant that will own it, so a single-tenant project's abatement track will nearly always show the warning. Nothing prevents completing either visit, and a person who reads the warning and proceeds leaves no record of the decision.

Financials are separate. Collaboration grants never expose a project's invoices, rate cards or vendor payments, by absence of any code path: no financial table's RLS references has_active_collaboration_grant(), and COLLABORATOR_ROLES_GRANTING_FINANCIALS is an empty constant with a test asserting it stays empty.