Deep Dive: Housebound Module

The Housebound module has the ability to allow libraries to do more outreach to the community when the community can't come into the library. There are a few pieces of this module including the ability to choose your "choosers", "deliverers" and the Housebound Patron.

Housebound System Preferences

To use this module, the system preference, Housebound Module, will need to be set to enable to use of this feature. Another system preference to consider turning on (if it is not already), is ExtendedPatronAttributes. ExtendedPatronAttributes allows the library to utilize the patron attribute feature in Koha.

Here is a handy Monday Minutes about using Patron Attributes:

Monday Minutes: Patron Attributes

Identifying the Housebound Patrons

Any patron in Koha can be identified as a Housebound patron. During the tutorial video, we talk about the advantages of using a specific category for these patrons. Using a specific patron category will allow staff to identify them easily in Koha, easily reporting the specific category, in addition to adjusting the ability to check previous checkouts.

Customizing Housebound Patrons

Once you have enabled the system preference, determine how to identify a housebound patron in your system. We can now, customize the housebound patrons with their reading likes and also frequency of delivery.

When on a housebound patron account, there is a new tab on the left that will say "Housebound" . Clicking this tab will bring this screen:

There are two mandatory fields, delivery day and frequency. Frequency is editable through the Authorized Values: HSBND_FREQ. Libraries can alter the values to match the needs of the library. Currently, the field 'delivery day' is hardcoded.

The rest of the fields are optional but will be super helpful for your 'choosers' to pick out books. Those fields include preferred material, subjects, authors, referral, and notes.

I can see a nice Google Form getting created by libraries to send this out to your patrons to get this information, possibly?!

Choosers and Deliverers

Another aspect of the Housebound feature is the ability to identify your 'choosers' and deliverers' for this program. A patron in your database, whether a staff member or volunteer can be identified as either or both of these through their patron account on the detail page, called 'Housebound Roles'.

Once a library has identified at least of (chooser and deliverer), then a patron can have a delivery scheduled.


After this form is filled out on the patron's account, a staff member can schedule the next delivery and also choose the 'deliverer' and the 'chooser'.


We shared some reports that would make this process more efficient. We have a report to show the next month's scheduled deliveries:

housebound_visit.deliverer_brwnumber AS "Deliverer",
concat(borrowers.title, " ", borrowers.firstname, " ", borrowers.surname) AS "Recipient name",
borrowers.cardnumber AS "Card number", concat(borrowers.address, "\n",, "\n", borrowers.zipcode) AS Address, appointment_date
FROM housebound_visit
INNER JOIN borrowers ON borrowers.borrowernumber=housebound_visit.borrowernumber
WHERE appointment_date BETWEEN curdate() and date_add(curdate(),interval 1 month)
ORDER BY housebound_visit.deliverer_brwnumber ASC

We have a report to show Housebound Information for the Choosers including past checkouts:

housebound_visit.chooser_brwnumber AS "Chooser",
housebound_visit.appointment_date AS "Delivery date",
housebound_visit.day_segment AS "Time of day",
concat(borrowers.title, " ", borrowers.firstname, " ", borrowers.surname) AS "Recipient name",
borrowers.cardnumber AS "Card number",
housebound_profile.fav_itemtypes AS "Favourite types",
housebound_profile.fav_subjects AS "Favourite subjects",
housebound_profile.fav_authors AS "Favourite authors",
concat('<b>',biblio.title, ifnull(biblio.subtitle,''),'</b>',' returned:',old_issues.returndate)
separator '<br>') as past_checkouts
FROM housebound_visit
INNER JOIN borrowers ON borrowers.borrowernumber=housebound_visit.borrowernumber INNER JOIN housebound_profile ON housebound_profile.borrowernumber=housebound_visit.borrowernumber
LEFT JOIN old_issues ON (borrowers.borrowernumber=old_issues.borrowernumber and date(old_issues.returndate) > date_sub(curdate(),interval 6 month))
LEFT JOIN items USING (itemnumber)
LEFT JOIN biblio USING (biblionumber)
GROUP BY housebound_visit.borrowernumber
ORDER BY housebound_visit.chooser_brwnumber ASC

**Added this report to the Koha Wiki ^

And finally a report to show the library all the Housebound patrons by using the category, Housebound:

SELECT borrowers.borrowernumber,borrowers.cardnumber,borrowers.firstname,borrowers.surname,,,,borrowers.categorycode
FROM borrowers
WHERE borrowers.categorycode='HB'
GROUP BY borrowers.surname ORDER BY borrowers.surname asc

Read more by Kelly McElligott