Help

Loans, due dates & renewals

How borrowing works end to end — due dates, renewals, overdues and returns.

Borrowing a toy

A loan starts when a toy is checked out to a household. The due date comes from the household's membership type — its loan period (e.g. 21 days) added to today, in your library's timezone. If that lands on a day you're shut (per your opening hours and closures), the due date rolls forward to your next open day, so members are never told to return on a day they can't. The due date is inclusive: a toy "due the 28th" is fine to return on the 28th. How many toys a household may have out at once is the type's max concurrent loans.

Loan weights (fractional limits)

By default every toy counts as 1 toward that limit. Give a toy a loan weight (on the toy's edit form, or in bulk per category from Settings → Categories) and it counts as that many slots instead: puzzles at 0.5 let a "3-toy" member hold two puzzles for one slot, and a weight of 0 means the toy never counts at all (e.g. free ride-on books).

The desk enforces the sum of weights against the membership limit — an over-limit basket asks for the usual override. Once any toy has a weight other than 1, the desk and member portal show slot usage with decimals (like 4.5 of 6 slots); until then everything reads as plain counts, exactly as before. Printed shelf and bag labels also show the weight on toys where it isn't 1.

Renewals

A renewal extends a loan by another loan period. Each membership type sets a max renewals (0 = none). Members can renew from their portal up to that limit; staff can renew for them and, with permission, override it.

One exception: if another member has placed a hold on that toy and you've enabled block renewals while reserved, the renewal is refused so the next person isn't kept waiting — staff can still override. See Holds & reservations.

Renewals happen automatically. If a due date passes and the toy hasn't come back, ToyHive renews the loan the next morning — provided the member still has a renewal left and nothing above blocks it (renewals turned off for that toy, or someone waiting on a hold where your library blocks that). The member gets an email saying which toys were renewed and their new due dates, and it tells them when that was their last renewal. The loan is no longer overdue, so the overdue reminders stop and fees stop accruing. On the normal path the renewal lands before any overdue fee is charged at all; if it is delayed — we were down overnight, or it's the first day this ran — a day or two of fees may already be on the account, and those stay.

There's no separate setting: this follows Members can renew their own loans online under Loans settings. Leave that on (it is by default) and a renewal the member could have taken themselves is simply taken for them. Turn it off — because you want renewing to be a conversation at the desk — and nothing is renewed automatically either.

Party hire is never renewed automatically — a pack is booked for particular dates and promised to the next family after that, so a late return is a phone call, not a quiet extension.

Once the renewals are used up, nothing more happens automatically — the loan stays overdue and the usual reminders and fees run as before. A loan that has been overdue for more than a few days is left alone too: by then it's a conversation you're already having, not a due date that slipped. Renewals taken this way appear in the activity log as ToyHive (automatic), and count against the member's max renewals like any other.

Overdue toys

Past the due date, a loan is overdue: the system sends reminders and surfaces it on the returns worklist. Loans overdue beyond the unrecoverable threshold (a library setting) move to a separate follow-up list. Overdue and damage fees are configured separately — see Fees & payments.

When an overdue toy comes back, the return desk shows any overdue fees accrued on that loan right on the return row, so the conversation happens while the member is there. Staff with the waive fees permission can waive them in one tap — the waiver is recorded against each charge with who waived it.

If your overdue fee is charged per visit or per member rather than per toy, the charge covers more than the toy in front of you — so the desk shows it but won't let you waive it until every toy it covers is back. Until then the row says so.

Returns

At return, staff record the toy's condition and any missing pieces before it goes back on the shelf. If someone is waiting on a hold, returning a copy notifies the next person in line.

Chasing a missing piece

Recording a piece missing is the start of a conversation, not the end of one. The evening it is recorded, the family gets an email naming the piece and the toy — and, if you charge for missing pieces, the amount and the date it would land. After that they hear from you again every few days while the piece is still missing, up to the limit you set in Settings → Fees (set the limit to 0 to send the first notice and nothing more), and finally the grace-ending warning three days before any fee.

Every one of those emails carries the same six one-tap answers, and the member portal offers them too:

  • Found it — I'll bring it back. Reminders pause for a fortnight and the fee is held. The borrow and return desks then prompt whoever serves them: "This family said they found the red block from A14 · Farm Set on 3 Oct — ask for it."
  • I'll replace it. The same, with three weeks.
  • Still looking. Another fortnight, twice at most; after that the option stops being offered.
  • It was already missing when I borrowed it. Reminders stop and nothing is charged until a volunteer decides. You see, right next to it, whether the copy's previous return was actually counted.
  • I can't find it. The button states the amount, so pressing it accepts the fee — it is charged on the next nightly run without warning them a second time. Where there is no fee, the piece is simply written off.
  • I didn't have this toy. Offered only to a family you asked on the off-chance (below). It closes their side and nothing else — one family's denial is never evidence against another.

Any answer can carry a note, and staff see it. A family can change their answer while the case is open; "I can't find it" and "I didn't have this toy" are final.

When nobody can be blamed. A stocktake sometimes turns up a shortfall with no loan pointing at anyone. If up to three families have held that copy since it was last counted, ToyHive asks them — worded as a question, with no amount named, and nobody is ever charged on a question. Turn that off in Settings → Fees if you would rather a volunteer handled those by hand.

Where staff see all of it. Loans → Missing pieces lists every piece still outstanding: the toy, the piece, who was asked, how many notices have gone and when, what they said, and either the fee and its date or the reason no fee applies. Filter by stage, or open the dashboard's "N missing pieces need a decision" row, which counts only the ones nothing automatic can resolve — a dispute, a promise that has passed its date, and silence after every reminder. From a row you can mark the piece found (the same control as the toy's own page), send a reminder now, resolve a dispute, or write it off with a reason. Writing off stops the chasing; it never says the piece came back, and the toy still counts short until someone hands it in.

Two populations are deliberately never chased automatically: pieces that came across in a migration from your old system, and pieces already open the day follow-up was switched on. Those show as "Nobody asked" until a volunteer presses Send a reminder now, which starts the cadence.

Reminding a family in person. When you pick a member on the Loans desk — to borrow or to return — any piece they still owe shows in an amber box above the basket: the piece, the toy, when it went missing and where the follow-up has got to (their answer shows; anything they wrote stays on their own page, for volunteers who can see member details). Ask them about it; if they have brought it, press Mark found right there. Pieces missing from a toy they still have out are listed on one line underneath — those are counted when that toy comes back.

When the piece comes back but the toy is out. A family hands in the red block — but A14 is out on loan with another family, so there is nothing to put it back into. Press Mark found as usual (on the missing-pieces list or the toy's page): while the toy is out it offers "Into the missing-pieces box until the toy comes back", and that is the default. The piece counts as found straight away, so the family who brought it back stops hearing from you and is never charged. The missing-pieces list shows it at the top, under In the missing-pieces box, with who has the toy and when it is due.

If someone tries to lend the toy again before the piece is put back, its row in the basket says so, with the same Put back button. When the toy comes back, three things happen: the return desk shows "Waiting in the missing-pieces box for this toy — put it back before you count" with a Put back button, the desk's confirmation repeats it, and your library's contact address gets an email (Missing piece — its toy is back, switchable under Settings → Notifications). Until someone presses Put back, the row reads "Toy is back" and the dashboard and the loans desk count it. If the volunteer counts the toy before fetching the piece, nothing goes wrong: the piece in the box is never recorded as missing against the family returning the toy — only a shortfall beyond it is. The same goes for the counting queue: a toy counted later shows the same note, and the count tells you to fetch the piece before shelving it. A stocktake count, or Report missing on the toy's page, that comes up short by a piece sitting in the box is not recorded as missing either — it tells you the piece is in the box, so put it back instead.

Whenever you know who handed the piece in, they get a short thank-you email saying it is marked as returned (and, if the toy is out, that the piece is waiting for it in the box). On the missing-pieces list, Mark found asks who brought it back and starts on "Someone else / not sure" — pick the family only if it really was them, because that is who gets thanked. A family's own page lists what they have brought back and where each piece is now.

In a library with more than one branch, the piece goes in the box at the branch where it was handed in. If the toy comes back to a different branch, the desk, the email and the list all say which branch's box it is in, so it can be sent over.

If it is not in the box. Press Not in the box. The piece stays on the list — so the family who returns the toy is still never blamed for it — marked as not found. When you have looked properly, press Found it, or Record it lost (it asks you to confirm, and warns you if the piece is critical — once it is off the toy's contents the toy can be lent without it). Recording it lost and undoing that change the toy's expected contents, so they need inventory-editing permission; other volunteers see the buttons greyed out with the reason. A lost piece is the library's own loss, so it is treated like a discarded broken piece: it comes off that toy's expected contents (the Contents tab shows the lower number) and no family is ever emailed, asked or charged for it. A lost bag or box is removed from the toy's storage. If a piece turns up later, press It turned up on it in the box's recent history: it goes back on the toy's contents and back in the box.

If the toy is written off or retired while its piece waits, the row says "Toy written off" instead of "Toy is back": keep the piece as a spare (it joins Spare parts) or discard it. Below the box, what went through the box in the last 30 days lists every piece put back, recorded lost, kept or discarded, and who did it.

A piece that came back broken is ticked separately from a missing one, on the same checklist. Broken pieces are logged against the toy as breakage history — they are never counted as missing, so they don't block the next loan and never attract a missing-piece fee. If the broken piece should also come off the toy's expected count, or the toy needs to go for repair, use "Report broken" on the toy's page, which offers those choices.

Charging for damage. Ticking a piece broken never charges anyone — most breakage is fair wear. When you judge that a toy was misused, a "Charge a damage fee" box appears once the check reports a broken piece or the condition is set to Damaged. It is prefilled with the damage fee from Settings → Fees and you can change the amount. The charge goes on that household's account against that loan, described by the piece and the toy, and can be waived or reversed later like any other fee. The same box appears in the counting queue, so deferring the count doesn't cost you the ability to charge — it goes to the household the copy came back from. Raising it needs the record payments permission; counting alone doesn't grant it.

Breakages to review

Most volunteers at the desk can't charge fees, and shouldn't have to decide on the spot whether a crack was misuse. When someone reports a broken piece without that permission, the breakage goes to Loans → broken pieces to review, and the dashboard nags whoever handles money until it is dealt with. Each entry shows the toy, the household, who reported it and their note, so the decision can be made properly rather than at the counter with a queue waiting.

From there you either charge (prefilled with your damage fee) or record no charge — fair wear, and either way the entry closes and is logged against your name. While you're there you also say what happens to the piece: leave it, send the toy for repair (which opens a maintenance ticket and takes it off the shelf), or drop the piece from the count so it isn't later reported missing. Nothing ages out of the list on its own: an entry nobody looked at should never be mistaken for one that was considered and waived.

Reviewing needs both the record payments and inventory edit permissions, because finishing an entry means settling the money and deciding about the toy. Anyone holding only one of the two won't see the list at all — half a review leaves the entry open while two people each assume the other has it. Give both to whoever does this job (a coordinator or treasurer); if nobody in your library holds both, entries will pile up unseen, so it's worth checking when you set roles up. Charging at the return desk itself is separate and needs only record payments.

Missing pieces don't appear here: they have their own grace period, and the reminder and fee run automatically without anyone deciding anything.

When a piece turns up after the fee was charged. Because that fee is taken automatically, the piece sometimes reappears afterwards — in the bottom of the toy bag, or at the next stocktake. Those charges collect on Loans → Fees to review, and the loans desk shows a prompt when there are any. Each row names the toy, the piece, the family and what they were charged; Give it back reverses the charge as a credit on their account. The list only ever shows fees whose piece has come back, so anything on it is worth a look. Seeing the list needs the view transactions permission; reversing a charge needs waive fees.

The desk is family-first: scan or search a member and all their loans come up pre-selected — untick any they're keeping, then return the rest in one go. You can also just scan a single toy to return it on its own.

Counting pieces later — the counting queue

Counting a toy's pieces and processing the return are separable. On a busy day one volunteer can take returns at the front while another counts at a table. When you return a toy with pieces you can either count it inline ("all pieces ✓", or tick what's missing) or choose "return only — count later" — the toy goes straight back on the shelf and joins the counting queue. Returning without counting needs no special permission, so a returns-only volunteer can always finish a return.

The queue (Loans → counting) lists the uncounted toys oldest-first with who returned each and from which household — useful context if a piece turns up missing. Opening an item marks it being counted by you so two people don't double-count. Completing a count (clean or with missing pieces) records the same check as counting inline and clears it from the queue. Toys left uncounted simply carry over to the next session. Counting itself needs the return-check permission.

Counting at the point of lending. An uncounted toy usually surfaces again when someone borrows it, so that is the second place you can count it. Scanning one into a borrow cart marks the row not counted since its last return, with a Count now button that opens the same manifest right there; pressing Confirm loan with one still in the cart asks once — count it, or Lend as-is. Nothing is blocked either way. What counting first buys is attribution: the check is recorded against the copy's last return, so a piece found missing belongs to the family that actually had it rather than to whoever borrows it next. A breakage ticked here goes to Loans → damage to be settled — no fee is raised mid-checkout, because the money would be the previous borrower's. Without the return-check permission the row still says the toy is uncounted and points at the queue. Lend one as-is and the receipt still notes that it went out uncounted, so the session's record says what happened.