Recall requests RFC

== RFC: recalls ==
Some libraries permit recalls, which are requests that one patron can make to retrieve an item that is currently on loan to another patron. 
A recall request will:
# Shorten the loan period for the original borrower, although the borrower will always be able to keep the book for a specified length of time (the “guarantee period.”) The loan period will be shortened according to the “recall return interval”—this is the amount of time the library believes it will take the borrower to return the item. 
# Send a notice to the original borrower that the loan period has changed, and that the borrower must return the item to the library.
# Optionally change the overdue fine rate if the borrower keeps the item past the original due date. 
The specific features to be added under this RFC include
* allowing administrators to define policies for recalls, e.g., what patron categories are allowed to make such requests, what the recall terms are, etc.
* allowing recall requests to be placed from both the staff circulation interface and the OPAC
* sending notifications of recalls
* applying special overdue and fine policies to recalled items
== Details for recalls RFC ==
Initial author: Daniel Sweeney (daniel.sweeney at liblime dot com) 
=== Overview ===
This specification covers changes to Koha to add recall functionality. A patron places a recall on an item that is loaned to another patron. The recall request will:
# Shorten the loan period for the borrower, although the borrower will always be able to keep the book for a specified length of time (the “guarantee period.”) The loan period will be shortened according to the “recall return interval”—this is the amount of time the library believes it will take the borrower to return the item. 
# Send a notice to the borrower that the loan period has changed, and that the borrower must return the item to the library.
# Optionally change the overdue fine rate if the borrower keeps the item past the original due date. 
Recalls are more active than regular hold requests. Regular hold requests wait for the item to be returned, while recall requests actively notify the borrower that the item is required and shorten the due date. 
It will not be possible to place a recall on an item that is not loaned to another patron. (Koha can be configured to allow patrons to place hold requests for on-shelf (unloaned) items but these requests are different from recalls. The name “recall” makes it sound like this function can be used to request items from the stacks—this can be confusing.) 
Recall functionality allows administrators to:
# Define different recall policies for each combination of patron group and item type.
# Define how recall notices are sent.
Recall functionality allows patrons to place recalls using the public catalog for items that are loaned to other patrons. 
Recall functionality allows circulation staff to place recalls on behalf of patrons who cannot recall a given item themselves. 
Recall policies at the patron category/item type level include rules for:
# Guarantee period. This is the length of time that a borrower will have an item regardless of whether another patron requests it. 
# Recall return interval. The interval that will be used to calculate the revised due date. (Note that this is distinct from the grace period used when calculating fines.) 
# Recall grace period. A grace period during which the patron will not be charged fines. This grace period will be different for recall due dates than for regular due dates. 
# Recall in public catalog. Whether or not patrons can initiate a recall from the public catalog.
# Recall fine rate. The fine rate for recalled items. 
=== Pre-Existing Functionality ===
Koha includes “hold” functionality. Staff members may search for an item in the staff client, then place a hold on behalf of a patron; alternately a patron may search for an item and place a hold in the public catalog. Actual holds are placed using the “Place Hold” button in the user interface—this gives the patron or staff member a form where they can choose which item to place a hold on. 
Regardless of whether patrons or staff are placing the hold, the “ReservesNeedReturns” preference in the “Circulation” Administration area determines whether on-shelf holds are allowed. 
Koha’s circulation policy system includes 
# Policies that work globally (for every transaction regardless of patron or item type), 
# Policies that work at the item type level (for all items with a given item type) 
# Policies that work at the patron category level (for all patrons with a given patron category) 
# Policies that work for specific patron and item type combinations. For policies that are set at the patron group/item type level, It’s also possible to set a ‘default’ policy that applies when no policy is defined for a patron group or item type. 
Since recalls will always work on a specific item for a specific patron, the recall policies will be set at the patron category/item type level with defaults. 
=== Requirements / Description ===
==== Recall policies ====
 
At the patron category level,
# Email recall notice delivery method. How to send recall notices. The possible delivery types right now are Email or Print.
At the Patron Category/Item Type level,
# Recall in public catalog. Whether or not a patron belonging to this category can place recalls for items of this type in the public catalog, or whether they need staff assistance. 
# Guarantee period. This is the minimum amount of time a borrower may have an item, regardless of whether someone recalls it.
# Recall return interval. This is the amount of time that a borrower has to return an item after a recall is placed. 
# Recall grace period. This is the amount of time that a borrower has after the adjusted due date to return an item without penalty. 
# Recall fine rate. This is the fine rate that a borrower will pay if they do not return a recalled item by its new due date. 
==== Recalling Items in the Public Catalog ====
The “Place Hold” button and form will change as follows:
# The “Place Hold” button will be named “Request Item” by default. 
# The form will now allow patrons to place recalls as well as holds on items that are charged to another patron. 
# In the public catalog, patrons will only be able to recall items that:
## Are loaned to another patron.
## Have item types that the active patron can request. 
# In the staff Circulation area, staff will only be able to recall items that:
## Are loaned to a different patron than the active one.
## Have item types that the active patron can request, or item types that allow staff members to place recalls for the active patron (based on item type and patron group.) 
==== Calculating and adjusting due dates and fines ====
In the following, the “requestor” is the patron who is requesting the item, while the “borrower” is the patron who already has the item. A staff member may be helping the requestor, or not. 
The following system parameters enter into the calculations below:
# The guarantee period. This is calculated using the borrower’s patron category and the item’s item type. 
# The recall return interval. This is calculated using the borrower’s patron category and the item’s item type. 
# The recall grace period. This is calculated using the borrower’s patron category and the item’s item type. This is a separate parameter from the regular circulation grace period. 
# The item’s original charge date. This date does not take any renewals into account—it’s the date that the item was originally loaned to the borrower. 
# The ‘guaranteed due date.’ This date is the original charge date plus the guarantee period. 
# The recall fine rate. This will be a distinct fine rate from the regular fine rate. 
# The default recall due date. This is the current date and time, plus the recall return interval. Note that this date may be later than the original due date for the item. 
# The actual recall grace period. This is the item’s recall due date, plus the recall grace period. (It’s actual because it’s an actual point in time, whereas the grace period is just an interval.) 
When the requestor places a recall on a charged item, the item’s due date will be adjusted as follows:
# In the simplest case, the due date is adjusted to be the default recall due date. 
# If the guaranteed due date is later than the default due date, then the guaranteed due date will be the item’s new due date. 
# If the item is already due before the default recall due date, the due date will remain the same. 
When the borrower returns the item, the following rules will be used to calculate any overdue fines:
# If the return date and time is earlier than the actual recall grace period, then no overdue fines will be charged to the borrower. 
# If the return date and time is later than the actual recall grace period, then the borrower will be fined using the recall fine rate, applied from the item’s recall due date. (The recall grace period will not enter into this calculation.)
# Recall fines will have the same fine account type as ordinary fines. 
==== Recall Notices ====
Koha will produce a configurable notice that will be sent to the borrower when another patron requests an item that’s loaned to the borrower . The notice may be sent using either email or paper mail. 
# If a borrower has no email address, the notice must be sent using paper mail. 
# Otherwise the notice will be sent using the email notice delivery method defined for the patron’s patron category. 
# We will certainly be adding other means of sending notices, including SMS and by telephony, in the near future, so it’s important to ensure that notices are architected for that. 
# The notice will be worded to include the recalled item’s title, the recall due date, the original due date, and the recall fine rate by default. It should be possible to add other circulation information in the notice as well. 
=== Security and Privileges ===
Staff members may place items on recall for other patrons if they have the existing “reserveforothers” privilege. This privilege will prevent staff from placing recalls across the board—it is intended to stop, for instance, students from placing recalls if they are not allowed, not to allow staff to place recalls for some patron categories and not for others. It also applied to holds—we will not separate the two privileges at this time. 
=== Open Questions and notes ===
There will be no title-level recalls—a recall always works on a specific item for a specific patron. We may want to think about ways to ensure that, if another copy of an item becomes available in the collection, either as a new acquisition or as a return, we substitute it for the recalled copy and get it to the patron. The original borrower should then be notified that the library doesn’t need the book any more, which may confuse them. 
Recalls are allowed or disallowed according to the requestor’s patron category, but most of the other policies for adjusting the due date and fine calculation use the borrower’s patron category. This can be a little confusing. Since the borrower is holding the book when the recall is processed, and they will be fined, their policies are the ones that control those changes. 
There’s no provision for manually adjusting the recall due date when staff place the recall—this may be a good enhancement. 
The borrower’s due date may actually be extended by the recall process—if a borrower has an item that is due soon, and another patron requests it, the due date will be calculated by adding the recall return interval to the current date—if this date is later than the original due date, the due date will be later than it was to begin with. This is the correct behavior—the borrower may need the time to return the book before the higher recall return fines come into effect. We will not have an option to control this behavior.
Category:Abandoned_RFC