1. Mentioned by Thomas Berezansky: Add another "result" field in the circ matrix for ignoring penalty blocks. Then you wouldn't be limited to just "by org unit" but could mix in other details like patron type.
2. Mentioned by Mike Rylander: Add a "penalty event map." Each org could map an event to a penalty, including custom ones. Default to the current hard-coded ones if no penalty is mapped.
Alternative approaches:
1. Mentioned by Thomas Berezansky: Add another "result" field in the circ matrix for ignoring penalty blocks. Then you wouldn't be limited to just "by org unit" but could mix in other details like patron type.
2. Mentioned by Mike Rylander: Add a "penalty event map." Each org could map an event to a penalty, including custom ones. Default to the current hard-coded ones if no penalty is mapped.