BC · Background checks
A virtual check gives a driver provisional clearance the same day; a visit check gives full clearance and falls due a few days after handover. Each check is one round, with its photos. Code BC.
Not yet a rule
Section titled “Not yet a rule”These questions are open in #81. Each gets a rule with a new ID once it is answered.
- BC open 1 · Clearance
- BC open 2 · Refund amount (P16)
- BC open 3 · require_visit_before_booking
- Clearance reads the latest check of each kind: OQ7 (#33)
R-BC-01 · Only a visit check has a due date
Section titled “R-BC-01 · Only a visit check has a due date”- Status: planned
- Example: given a virtual check, when it is saved with due_by 2026-10-10, then it is refused; a visit check may have one.
- Refusal: none: check_violation (23514).
- Who: every writer.
- Source: [Ref] Data model V13: background_checks.
R-BC-02 · A passed, failed or waived check records when it was decided
Section titled “R-BC-02 · A passed, failed or waived check records when it was decided”- Status: planned
- Example: given a scheduled check, when its status is set to passed with no decided_at, then it is refused.
- Refusal: none: check_violation (23514).
- Who: every writer.
- Source: [Ref] Data model V13: background_checks; D9 (S4).
R-BC-03 · Recording a check's result needs screening:approve at the driver's pool
Section titled “R-BC-03 · Recording a check's result needs screening:approve at the driver's pool”- Status: planned
- Example: given a viewer at PML, when he marks a PML driver's check as passed, then nothing changes; a background_check user at PML may.
- Refusal: none: no effect without the permission.
- Who: super_admin, admin, admin_driver and background_check hold screening:approve.
- Source: [Ref] Roles, policy matrix (background checks: the result needs screening:approve).
R-BC-04 · Scheduling or editing a check needs screening:write at the driver's pool
Section titled “R-BC-04 · Scheduling or editing a check needs screening:write at the driver's pool”- Status: planned
- Example: given a checker at PML, when she schedules a visit check, then it is refused; an admin_driver at PML may.
- Refusal: none: insufficient_privilege (42501) on insert; no effect on update.
- Who: super_admin, admin, admin_driver and background_check hold screening:write.
- Source: [Ref] Roles, policy matrix.
R-BC-05 · Reading checks needs screening:read at the driver's pool
Section titled “R-BC-05 · Reading checks needs screening:read at the driver's pool”- Status: planned
- Example: given a finance user at PML, when she reads background_checks, then nothing comes back; a viewer at PML sees them.
- Refusal: none: hidden.
- Who: super_admin, admin, admin_driver, background_check and viewer hold screening:read.
- Source: [Ref] Roles, policy matrix.
R-BC-06 · A handover schedules a visit check, due visit_due_days after the handover
Section titled “R-BC-06 · A handover schedules a visit check, due visit_due_days after the handover”- Status: planned
- Example: given visit_due_days is 3, when a driver's car is handed over on 2026-10-07, then a visit check is scheduled with due_by 2026-10-10.
- Refusal: none.
- Who: the handover function (M4).
- Source: [Ref] Data model V13: background_checks (visit = full clearance, due visit_due_days after handover); [Ref] Database rules and conventions, Settings.
R-BC-07 · Deciding a check with refund_admin_fee creates one refund adjustment on the driver's admin fee charge, in the same transaction
Section titled “R-BC-07 · Deciding a check with refund_admin_fee creates one refund adjustment on the driver's admin fee charge, in the same transaction”- Status: planned
- Example: given a driver whose virtual check fails, when it is decided with refund_admin_fee, then one charge_adjustments row of kind refund is created on his admin fee charge; if the adjustment can't be created, the decision isn't saved either.
- Refusal: none.
- Who: the check decision function (M3).
- Source: D9 (P16).