Evergreen in Action

Controlling how holds are fulfilled 

Circulation policies control who can borrow materials--but when particular materials are not available at a given library, a patron needs to request those materials by placing a hold. Hold policies pull together user, library, and item data to determine how library materials can be requested for and fulfill hold requests, such as: what patrons, from what libraries can request what types of materials, and what copies can fulfill those requests.

Individual elements of the holds policies are configured using specific interfaces, and should be configured prior to setting up the hold policies. 

Data elements that affect your hold policies

 There are several data elements that can be modified to adjust your hold policies.

Copy data

When you modify the attributes of a copy in the Copy Editor, those attributes can influence hold fulfillment as follows:

  • Circulation Modifier: Circulation modifiers can control hold policies on specific groups of items. You can create new circulation modifiers in the staff client from Admin > Server Administration > Circulation Modifiers.
  • Holdable? flag: The Holdable? flag, if set to False, prevents an item from filling a hold.
  • Reference? flag: The Reference? flag, if set to True, can affect hold eligibility.
  • Copy age hold protection rule: This rule generally applies to new materials copy records, and limits where holds can be picked up for a set period of time. You can only apply copy age hold protection rules to individual copies.

Although not a specific element of a hold policy, you can set Copy Locations as non-holdable, thereby preventing all items within that location from filling holds.

User data

Permission groups, hold policies, and global flags in combination define the total number of holds that can be placed by members of different user groups.

  • Max holds: Specifies the total number of holds a member of a particular permission group can place.
  • Max includes frozen: Enable this option to make frozen (suspended) holds count toward the total number of holds a permission group can place.
  • Requestor Permission Group and User Permission Group: The requestor account places the hold request, while the user is the account for which the hold has been placed. When a staff user places a hold for a patron, the staff account may have different hold privileges.  

Library data

The attributes of libraries, both as actual entities circulating materials and as conceptual organizational units in a hierarchical structure, play a large role in determining which items fill holds, where requested items can be retrieved from, and how quickly requests are filled.

  • User Home Library: The home library identified in the user's record.
  • Request Library: The library where the request was placed.
  • Pickup Library: Where a hold item is to be retrieved.
  • Item Circ Library: The library that owns the copy.
  • Owning Library: The library that owns the call number.
  • Transit Range: The depth within the organization unit hierarchy at which the hold request can travel.
  • Range is from owning library: Whether or not transit range is from the owner of the copy.

Managing Hold policies 

Hold policies are managed in the Staff Client via the Hold Policy Configuration interface, accessed from Admin > Local Admin > Hold Policies.

Best practices for creating hold policies

  • Identify the parameters that drive your hold policies.
  • Attempt to standardize as many hold policies, such as for material types and permission groups, as possible for all organizational units across the consortia.
  • Create standard hold policies at the Consortia level to function as default rules.
  • Identify where specific organizational units require special rules. Unlike circulation policies, when you add hold policies for child systems or branches, you must identify each parameter for the policy. It will not inherit any values from the default consortium policies.

Simple Example

At the consortium level, DVDs cannot be placed on hold, but adults can place holds on DVD's owned by BR2.

More Complex Example

A set of rules to define holdable behavior for sites BR1 and BR2. Items with a circ modifier of dvd are not allowed to be placed on hold across the CONS level, but then if a staff member places the hold at BR1, the hold is allowed. At BR2, it allows both patrons or staff to place holds on items as long as they choose to pick-up at the owning library.

Hold targeting and capture

There are two parallel processes that run to identify potential copies to fulfill hold requests: targeting and opportunistic capture. 

  • Targeting looks for a copy with "available" or "reshelving" status. Preference is given to copies shelved at the copy's pickup library. Those copies are placed on the library's holds pull list.
  • Opportunistic capture checks each copy when it is checked in to determine if it can fill a hold, even if that hold is already on a holds pull list.

By default, opportunistic capture attempts to fill the first hold in the queue where the pickup library matches the checkin library. If there is no hold with that pickup library, it then fills the next hold in a queue.

A library can adjust this behavior by enabling First In First Out (FIFO) holds. In a FIFO environment, the first hold placed is the first hold filled, and so on. Opportunistic capture sends the check-in copy to the next hold in the queue, regardless of the pickup library. You can enable the FIFO policy from Admin > Local Administration > Library Settings Editor: FIFO.

Several library settings control the targeting of items for hold capture in Admin > Local Administration > Library Settings Editor:

  • Checkout Fills Related Hold: When a patron checks out an item and they have no holds that directly target the item, the system attempts to find a hold for the patron that could be fulfilled by the checked out item and fulfills it.
  • Target copies for a hold even if copy's circ lib is closed
  • Target copies for a hold even if copy's circ lib is closed if the circ lib is the hold's pickup lib
  • Maximum library target attempts: When this value is set and greater than 0, the system only attempts to find a copy at each possible branch the configured number of times.

Age hold protection

Age hold protection prevents new items from filling holds requested for pickup at a library other than the owning library for a specified period of time.

You can define the protection period in Admin > Server Administration > Age Hold Protect Rules.

The protection period when applied to a copy record can start with the copy record create date (default) or active date. You can change this setting in Admin > Local Administration > Library Settings Editor: Use Active Date for Age Protection

In addition to time period, you can set the proximity  value to define which organizational units are allowed to act as pickup libraries. The proximity values affect holds as follows:

  • "0" allows only holds where pickup library = owning library
  • "1" allows holds where pickup library = owning library, parent, and child organizational units
  • "2" allows holds where pickup library = owning library, parent, child, and/or sibling organizational units

Age protection only applies to individual copy records. You cannot configure age protection rules in hold policies.


Hold boundaries define which organizational units can fill specific holds. Large consortia containing multiple systems can use hold boundaries to limit transit and delivery costs. There are two types of boundaries, hard and soft.

A hard boundary prevents holds from being filled by copies from organizational units outside of the boundary. If a single potential copy exists and is later changed to a non-holdable status, the hold request will never be filled.

Soft boundaries prioritize targeting for copies from organizational units within the soft boundary first. If no potential copies exist within the soft boundary, the hold targeting algorithm moves up the organization unit hierarchy to the next level until it targets a matching copy or meets a hard boundary. 

You can set hold boundaries in Admin > Local Administration > Library Settings Editor: Hard Boundary and the corresponding Soft Boundary category.

You can also apply hold boundaries to Hold Policies using the Range is from owning library toggle and Transit Range selection list.