A Clockwork Hippo

24
A Clockwork Hippo How Holds Work in Evergreen Mike Rylander, Equinox Software Grace Dunbar, Equinox Software

description

A Clockwork Hippo. How Holds Work in Evergreen Mike Rylander, Equinox Software Grace Dunbar, Equinox Software. Things to know. Evergreen doesn’t place patron initiated holds on specific monograph copies; it places holds at the title level and looks for the closest copies to fill them - PowerPoint PPT Presentation

Transcript of A Clockwork Hippo

A Clockwork Hippo

How Holds Work in Evergreen

Mike Rylander, Equinox SoftwareGrace Dunbar, Equinox Software

Things to know• Evergreen doesn’t place patron initiated holds on specific monograph

copies; it places holds at the title level and looks for the closest copies to fill them

The Process• EG always looks for a copy by…

• Creating a potentials list and targeting one specific copy (if one is available)– The copy will appear on the hold pull list of the circulating or home library– The library must run their pull list and physically go pull and scan the item to capture the hold

» Note that at the point of scanning the item, the item may end up being captured for a different patron – that’s okay, it means that the other hold got filled opportunistically or canceled.

• EG sometimes looks for a copy by…• Looking for an opportunistic capture at the pickup library

– Opportunistic capture can be configured using the “soft stalling interval”, otherwise it is the “Hungry Hungry Hippos™ method” of hold capture – anytime an item is scanned anywhere that could fill any hold anywhere, it will be captured and transited.

– The larger the soft stalling interval the longer opportunistic capture keeps looking exclusively at the pickup library. This increases the chance of “serendipitous” return and capture of an item for a hold and reduces transiting.

» Note that stalling only affects opportunistic capture, it doesn’t affect targeting.

Definitions• Targeting: Identification of specific potential copies to fulfill holds• Capture: Physically scanning the barcode of an item and triggering a

specific hold for a patron. Until the point of capture, the holds pull list is theoretical.

• Opportunistic: Serendipitous hold capture – if any item anywhere is scanned in, it may be captured for a hold placed anywhere. ***

• FIFO: Forces opportunistic capture to adhere to the exact hold placement order (as much as possible)

• Weighting: Artificially influences the probability of items at specific libraries being targeted for holds

• Stalling: How long to wait before allowing items not at the pickup library to be opportunistically captured to fill a hold

• Boundaries: Soft boundaries are where you start looking for a place to stop. Hard boundaries are where you stop. (period)

*** Configurable by introducing soft stalling interval – see Stalling

Standard Hold ConfigurationTargeting• Holds Targeting with opportunistic capture at the pickup library of a hold.• The System creates a potentials list by:

• Excluding items that are age protected at other libraries• Excluding items whose statuses aren’t holdable

• By location• By copy• By status

• Limiting items by selection depth (if hard boundaries are being used)• Excluding items at libraries that are closed (checking closed dates)• Excluding items that are currently targeted for another hold

• From the potentials list, the System identifies (targets) one specific copy, closest to the pickup library, that is eligible for a hold and places it on the hold pull list for capture.

• The hold pull list is run at the library and the copy is pulled and captured for a hold OR the configurable time expires without capture and the system regenerates the potentials list and chooses another eligible copy and places it on the hold pull list for capture (re-targeting).

Opportunistic• If an eligible copy is returned to the pickup library before the targeted copy is captured, that

eligible copy will be captured for the hold first. (with stalling)• If an eligible copy is returned anywhere before the targeted copy is captured, that eligible copy will

be captured for the hold first. (without stalling or after the stalling interval expires)

http://www.gliffy.com/publish/2066811/

Hold Boundaries• Hard

– Patrons cannot place holds across

– Staff cannot place holds across

– They are inflexible, impermeable… hard.

– The system will never look beyond a hard boundary, even if there are no copies in the soft boundary area.

• Soft– We begin looking for a

potential copy at the pickup library – ranged up to the soft boundary

– If no copy is found, it will walk up the org tree (and look down) until it hits a hard boundary

– Once a potential copy is identified it will never look further – that becomes the hard boundary for that hold

– Holds obey standard targeting/opportunistic behaviors otherwise

http://www.gliffy.com/publish/2066957/

FIFO• First In First Out• FIFO attempts to ensure that holds are filled in exact order placed• FIFO is excellent for smaller geographical areas• FIFO is also good for geographically dispersed consortia for which transit costs are

not an issue• Don’t set FIFO at each branch; set FIFO at the top level of intended use.• If using Hard Boundaries, ensure they are set at the same level as FIFO.• (e.g. If Systems A and B don’t resource share, set FIFO at System A and System B.

If they *do* resource share, set FIFO at the Consortia level.)• It is not recommended to use stalling in conjunction with FIFO as stalling restricts

transiting. Using stalling and FIFO together will make it harder for Evergreen to fill holds and increase patron wait times.

• FIFO cannot ever be “exact” order placed. When missing items are found and new items are added it changes the potentials list. The next group of holds to be targeted or retargeted will have the new items and therefore items not at the top of the queue might get an available hold sooner. Remember the potentials list (and therefore FIFO) is also affected by library closed dates.

Weighting

• Artificially influences the probability of items at specific libraries being targeted for holds

• Really only useful in combination with stalling– Because stalling only affects opportunistic capture

and weighting affects targeting – the stalling gives you time to have that artificial weight on the pull list which is part of the targeting process.

• Configurable in the library settings editor

Are you calling me

fat?

Are you calling me

fat?

Basic Org Structure for our examples

Our Scenario Basics

Patrons• Mrs. White

– Home Library is Branch 1

• Miss Scarlett– Home Library is Branch 2

• Col. Mustard– Home Library is Branch 3

• Professor Plum– Home Library is Branch 7

Items• Z

– Copy 1, Branch 1, available– Copy 2, Branch 4, ckd out, (age prot.)– Copy 3, Branch 2, ckd out

• X– Copy 1, Branch 3, ckd out– Copy 2, Branch 3, available– Copy 3, Branch 6, ckd out– Copy 4, Branch 2, ckd out

Standard Targeting, Item Z

• Miss Scarlett placed her hold on Monday• Professor Plum placed his hold on Tuesday

– Evergreen targets book Z, copy 1 at Branch 1 for a hold and it will print on their holds pull list

• When pulled and scanned it will be captured for Miss Scarlett and put in transit to Branch 2 for her to pick up.

– Professor Plum has to wait for copy 3 (or copy 1) to be returned in order to fill his hold – or for Copy 2’s age-protection to expire.

Copy2(age

protect.)

Copy2(age

protect.)

Copy1 available

Copy1 available

Copy3 checked

out

Copy3 checked

out

I get Copy1.

I get Copy1.

I have to

wait.

I have to

wait.

•I placed my hold first, I will get Copy1 once the library there pulls and captures it. •The Professor will get Copy3 or Copy1 – whichever is returned first – or Copy2 if its age protection expires before the other copies are returned.

FIFO, Item X

• Mrs. White placed her hold 1st • Professor Plum placed his hold 2nd • Miss Scarlett placed her hold 3rd

• Col. Mustard placed his hold 4th

• Copy2 is available at Branch 3• Copy1 gets returned next and goes to Plum• Copy3 gets returned next and goes to Scarlett• Copy4 gets returned last and goes to Mustard

Copy2 available

Copy2 available

I get Copy2!

I get Copy2!

I will get

Copy1

I will get

Copy1

•I placed my hold first, I will get Copy2, the Professor gets the next available copy, Scarlett gets the next one and Mustard is next. Wow, these books sure travel!

I will get

Copy3

I will get

Copy3 I will get

Copy4

I will get

Copy4

Copy1 (gets

returned 1st)

Copy1 (gets

returned 1st)

Copy3 (gets

returned 2nd)

Copy3 (gets

returned 2nd)

Copy4 (gets

returned last)

Copy4 (gets

returned last)

FIFO… nutshelledI’ve been

targeted for a hold. I shall

fulfill my destiny for the person first in

line!

I’ve been targeted for a hold. I shall

fulfill my destiny for the person first in

line!

I’ll fill the next hold in line, I

love to travel!

I’ll fill the next hold in line, I

love to travel!

I’m opportunistic –

I’ll fill a hold anywhere

regardless of distance!

I’m opportunistic –

I’ll fill a hold anywhere

regardless of distance!

I’m age-protected. I’m not holdable outside my

home library yet.

I’m age-protected. I’m not holdable outside my

home library yet.

• Miss Scarlett placed her hold on Monday• Professor Plum placed his hold on Tuesday• Evergreen targets Z, copy 1 at Branch 1 for a hold and it will print on their holds pull list

• Before Branch 1 runs their pull list, Copy 3 is returned to Branch 2. It is opportunistically captured for Miss Scarlett because that is her pickup library. When Branch 1 runs their pull list, Copy 1 will now be captured for Professor Plum– The copy doesn’t have to belong to the branch it is

returned to in order to be picked up for opportunistic hold. The library just has to be the *pick up* library of an eligible hold.

…Opportunistic with Stalling Enabled

Copy2(age

protect.)

Copy2(age

protect.)

Copy1 available

Copy1 available

Copy3 checked

out

Copy3 checked

out

I get Copy3, how

opportune!

I get Copy3, how

opportune!

I get Copy1, hooray!

I get Copy1, hooray!

•I get Copy3 because it was returned to my pickup library (which also happens to be it’s home library) before Branch 1 captured items off their pull list.•Now the Professor gets Copy1 when the library scans their pulled items.•But if the other patron had returned Copy3 to Branch 7 it would have been opportunistically captured for the Professor regardless if I had gotten Copy1 yet or not.

Standard Configuration… nutshelled

I’ve been targeted for a hold. I shall

fulfill my destiny!

I’ve been targeted for a hold. I shall

fulfill my destiny!

I’ll fill the closest hold available (by org unit, that

is)

I’ll fill the closest hold available (by org unit, that

is)

I’m opportunistic and stalled –

I’ll fill a hold at the pickup

library!

I’m opportunistic and stalled –

I’ll fill a hold at the pickup

library!

I’m age-protected. I’m not holdable outside my

home library yet.

I’m age-protected. I’m not holdable outside my

home library yet.

Hold Boundaries, Item X

• Mrs. White placed her hold on Monday• Col. Mustard placed his hold on Tuesday• Professor Plum placed his hold on Wednesday

– Mrs. White would be first in queue to receive book X, Copy 4 as soon as it is returned

• If copy 4 didn’t exist, she wouldn’t be able to place a hold

– Col. Mustard’s hold would be targeted to Copy 2 (or could get Copy 1 through op capture)

– Professor Plum is only eligible for Copy 3

Hard Boundaries

Soft Boundaries

Copy4 checked

out

Copy4 checked

out

Copy2 available

Copy2 available

Copy1 checked

out

Copy1 checked

outCopy3

checked out

Copy3 checked

out

•I will get Copy4, in fact, it’s the only copy I *can* get because the system won’t look at branches in System B due to the hard boundary. If there were no copies in my System, my hold request would be rejected.•The Colonel will have his hold targeted to Copy2 but he could get Copy1 if it was returned before Branch3 pulled their holds.•The Professor will get Copy3 and since there is a potential item in the soft boundary around Branches 5, 6 & 7, the System will not walk any further up the org tree to look for other copies. If Copy3 didn’t exist, the System would go up to System B and look down through Branches 3 & 4 for copies.

Boundary Configuration… nutshelled

I’ve been targeted for a hold. I shall fulfill my destiny! (So long as I don’t

cross a hard boundary…)

I’ve been targeted for a hold. I shall fulfill my destiny! (So long as I don’t

cross a hard boundary…)

I’ll fill the closest hold available

(by org unit, that is and so long as I

don’t’ cross a hard boundary…)

I’ll fill the closest hold available

(by org unit, that is and so long as I

don’t’ cross a hard boundary…)

I’m opportunistic – I’ll fill a hold

anywhere (depending on

stalling and within my soft

boundary, natch!)

I’m opportunistic – I’ll fill a hold

anywhere (depending on

stalling and within my soft

boundary, natch!)

I’m age-protected. I’m not holdable outside my

home library yet.

I’m age-protected. I’m not holdable outside my

home library yet.

Quick Guide • Standard configuration of targeting/opportunistic capture:

– Geographically large consortia; geographically smaller consortia with high hold volume

• Hold Boundaries– Geographically dispersed consortia; consortia with less system sharing

• FIFO– essentially ignores opportunistic capture and relies on hold placement order

regardless of proximity• Needs to be set at the same depth as hard boundary (if using) and don’t use stalling• Hold fill order will be affected by new and “found” copies

• Weighting– only useful with stalling because you’re influencing targeting with weighting,

not opportunistic capture• Looping (Maximum library target attempts)

– Loop: One Evergreen cycle of targeting a copy at every branch without success.

– Max loops: Configurable number of attempts to try before cancelling the hold

The Future… ?•Group Priorities

•Less Priority – Prison Library Patrons•More Priority – Faculty

•Best Hold Sorting•Replacing FIFO on/off setting•Adding More Configurations

•Improvements to the Hold Matrix•???