]> git.evergreen-ils.org Git - working/Evergreen.git/blob - docs/TechRef/Circ/calculated-proximity-adjustments.txt
Calculated Proximity Adjustments, a new feature
[working/Evergreen.git] / docs / TechRef / Circ / calculated-proximity-adjustments.txt
1 Calculated Proximity Adjustments
2 ================================
3
4 Summary
5 -------
6
7 Today in Evergreen, the way in which organizational hierarchy can be taken into account during hold targeting and capture is through the evaluation of Org Unit Proximity.  This is defined as the number of graph edges between Org Units, and for holds, specifically the distance between the capturing library and the pickup library. This value is used to rank sets of potential copies for holds based on their apparent nearness or proximity to the pickup lib at targeting time and to the checkin lib at op-capture time (in certain configurations).
8
9 Evergreen needs a mechanism by which the proximity between libraries can be adjusted for the purpose of effecting hold capture.  This will support several use cases, including, but not limited to:
10
11   * Causing a specific library to be targeted for holds in preference to all others.
12   * Causing a specific library to be targeted for holds in preference to all others except for the pickup library.
13   * Allowing transit distance to be more accurately reflected in hold order choice, for instance, causing nearby systems to have lower effective transit distances than widely separated systems.
14   * Reporting on the true cost of transiting items in a broadly distributed consortium.
15
16 Overview
17 --------
18
19 Evergreen can be made to provide a way to specify two types of proximity adjustment: Relative and Absolute.
20
21 Relative proximity adjustment will allow Org Units, and descendants thereof, to be treated as closer or farther from one another than the simple edge distance describes by adding or subtracting full or partial edge distance amounts to the baseline edge distance under configured circumstances.
22
23 Absolute proximity adjustment will allow Org Units, and descendants thereof, to be viewed as having a specific distance from one another that replaces the baseline edge distance under configure circumstances. This will naturally have an impact on how potential copies are evaluated for their 'proximity' when targeting holds and capturing copies for holds.
24
25 Plan
26 ----
27
28 Create a configuration interface allowing certain item- and hold-level criteria to be evaluated at targeting time.  Among the criteria would be:
29
30   * Item circ library (or ancestor thereof)
31   * Item owning library (or ancestor thereof)
32   * Hold pickup library (or ancestor thereof)
33   * Hold request library (or ancestor thereof)
34   * Item circ modifier
35   * Item shelving location
36
37 At least one criterion must be supplied.  These criteria would be ranked by order, and reordering allowed.
38
39 In addition to these criteria, an Absolute or Relative proximity adjustment would be supplied.  For Absolute proximity adjustments, the highest-ranked criteria-matching rule would be used for the copy.  For Relative proximity adjustments, all applicable adjustments would be summed.  In the case that both Absolute and Relative adjustments are found for the currently evaluated item and hold, the Absolute proximity adjustment will replace the baseline edge distance and then be modified by the Relative proximity adjustment calculation.
40
41 To support both targeting-time and capture-time use of this derived proximity information, the calculated value will be stored on the hold-copy map.  In conjunction with the Custom Best-hold Sort Order proposal, this information would then be available for use in choosing the hold to be filled by a particular copy.
42
43
44 ////
45 vim: ft=asciidoc
46 ////