By Docket Date Case Distribution - department-of-veterans-affairs/caseflow GitHub Wiki

Policy Objectives

In designing the automatic case distribution, there were a number of policy objectives that the team sought to realize.

  • Priority cases should be distributed quickly.
  • Docket order should be respected. An appeal that has an earlier docket date should be distributed before one with a later docket date. A certain amount of allowance is made on the legacy docket, where some appeals are tied to judges.

Combining the Docket Types

Before distributing:

  • Priority appeals that are ready for distribution will be mixed together into a single batch and sorted by oldest first.
  • Non priority appeals that are ready for distribution will be mixed together into a single batch and sorted by oldest first.

Case Distribution

Enabling By Docket Date Distribution

  • The FeatureToggle :acd_distribute_by_docket_date must be enabled/true. This allows the Proportions algorithm to be overwritten with the Docket Date Distribution algorithm which orders appeals by docket date regardless of docket type.

Requested Distribution

When a judge requests the distribution, we distribute cases according to the following steps:

  1. Distribute priority appeals from all dockets
  2. Then distribute non-priority appeals from all dockets, if the batch size has not been met.

Priority Push

In an effort to get priority cases to judges without waiting for them to request cases, every Monday morning, a PushPriorityAppealsToJudgesJob is run to push ready priority cases to judges that can receive them. Judges can receive this push if they have an active judge team in Caseflow and they have not been removed from the job. DVCs are in charge of keeping this list of judges up to date and can add and remove judges from this job from the Team Management page.

Priority Push will distribute priority appeals from all dockets down to the limit. All docket types are treated equally. Docket order is respected.

Case Distribution Exclusions

In Caseflow, there are various ways to modify a Case Distribution, including the ability to exclude certain users from a distribution itself. These two exclusions are the Named Judge Affinity Inclusion Lever and the Case Distribution Ineligible Judges List

Named Judge Affinity Inclusion

Named Judge Affinity Inclusion Levers Description Default Seed Value
exclude_appeals_from_affinity Used to track whether a judge (team) should have their affinity appeals distributed to any available judge team even if the set amount of time has not elapsed. False
  • The Named Judge Affinity Inclusion Levers are toggles to indicate specific judges who should be excluded from distribution of affinitized appeals, so that those appeals don't have to wait for the affinity days to elapse before being made available for distribution to any available judge if the affinitized judge has known unavailability.

  • These levers live outside of the Admin UI and can be found within the Caseflow Team Management page. Any user with access to the Caseflow Team Management page can designate an individual judge as eligible or ineligible to receive affinitized appeals.

  • When the box is checked, the judge will not receive cases with which there is an existing affinity relationship. Any appeal with an affinity relationship to that judge will immediately be released for distribution to any judge once the appeal is ready to distribute. Appeals that are tied (e.g., legacy hearing) are unaffected by this value.

To learn more about Named Judge Affinity Inclusion, including files where these changes live, visit Case-Distribution-Admin-UI#active-levers

Case Distribution Ineligible Judges List

There is an IneligibleJudgesJob that runs every week prior to the push_priority_to_judges_job. The IneligibleJudgesJob is a job that queries all ineligible judges in caseflow and vacols and inserts them into a cache we call "case_distribution_ineligible_judges". Anyone on this list will have all their cases relayed to genpop distribution, meaning anyone can receive their cases regardless of affinity or who the case was tied to.

Ineligibility within VACOLS and Caseflow:

  1. A user is marked as Inactive in VACOLS when STAFF.SACTIVE has a value of "I"
  2. A user is not a Judge or Acting Judge in VACOLS when STAFF.SVLJ does not have a value of "J" or "A"
  3. A user is not active in the Caseflow users table when users.status is not equal to "active"

To learn more on Ineligible Judges List, including files where these changes live, visit Cases-Tied-to-Judges-No-Longer-with-the-Board-or-Otherwise-Ineligible

Lever Consolidation

Here is a list of the consolidated levers (current 9/13/2022)

  • As of Q1 2024 (03/01/2024), these levers and more can now be found within the Case Distribution Admin UI, a new a centralized location to be able to view values and descriptions of the levers used in the case-distribution algorithm. In addition to this, Administrative users of the Case Distro Algorithm Control team are able to replace existing values for the case-distribution variables.
Lever Description Value
alternative_batch_size If the judge does not have their own team, for example if they are a DVC, they receive a set number of cases known as an alternative batch size 15
batch_size_per_attorney When a judge requests a distribution of cases, they will receive a certain number of cases (batch size) in their queue. It is a multiple of the number of attorneys on the judge's team (3 x the number of attorneys) 3
direct_docket_time_goal Direct review timeliness goal 365
request_more_cases_minimum When requesting more cases VLJs must have less than or equal to this value of cases remaining 8

Diagram

(source doc on Mermaid)