{"schema_version":"1.10","project":{"id":"bankuet-portal","slug":"portal","title":"Bankuet: Giving food banks control over supply requests","card":{"title":"Food bank request portal","deliverable":"Led the shift from algorithmic allocations to quantities and visible prices.","outcomes":"Weekly processing ~4h → 1h · average underspend ~7% → 0%"},"seo":{"title":"Food bank request portal","description":"How I replaced algorithmic allocations with exact quantities and visible prices, reducing request processing from about four hours to one."},"canonical_url":"https://laurence-peberdy.com/w/portal","markdown_url":"https://laurence-peberdy.com/w/portal.md","project_context":{"type":"organization","name":"Bankuet","url":"https://bankuet.co.uk"},"project_date":{"precision":"day","value":"2024-07-09"},"published":"2026-08-05","updated":"2026-09-06","role":["Product Lead"],"responsibility_summary":"I set direction, priorities and scope, and worked with our in-house UX Lead in Figma. I directed an external 2–4-person team across business analysis, engineering and QA, bringing in architecture support as needed.","description":"Food banks could set a budget but not choose exact quantities. I led the shift to visible prices and case quantities, reducing weekly request processing from about four hours to one.","summary":["Before v3, a food bank did not tell Bankuet exactly how many cases of each product it wanted. It set a total budget and marked products high, medium or low priority. An algorithm chose the quantities, and our team often had to interpret or adjust the result.","I replaced that model with visible prices and exact case quantities. Food banks could see the cost of their choices and submit the request they actually wanted; Bankuet spent less time fixing the output."],"problem":"**Food banks could express priorities, not quantities.** They could say what mattered most, but not how many cases they wanted. **They could not see the cost of each choice.** Without unit and case prices, users could not tell how a product affected their budget. **Bankuet had to repair the algorithm's output.** Allocations could underspend the budget or need manual adjustment before ordering. **Precise requests needed better financial context.** Food banks had limited information about previous requests, spending and their available balance. The evidence came from food bank feedback and my own experience processing Bankuet's supply orders each week.","constraints":["The request form is not an isolated interface; it feeds Bankuet's weekly ordering operation. Three constraints shape it:","**Requests feed a live weekly workflow.** Food bank requests flow directly into Bankuet's supply-ordering process, so errors in the request flow can create operational work as well as user confusion.","**Exact quantities depend on trustworthy financial context.** Food banks need reliable balances and visible prices before more granular control is useful.","**Prices can change before fulfilment.** The design needs a workable tolerance for changes between request and fulfilment rather than implying every displayed price is fixed."],"hypotheses":["If food banks can choose exact quantities against visible prices, requests should become more accurate and understandable, reducing manual intervention and algorithmic budget underspend."],"interventions":["I did not jump straight to exact quantities. First I made balances, request history and spending clearer, because precise choices only help if the user can trust the budget they are spending.","With those foundations in place, **v3.0 — Volumes and Values** launched on **9 July 2024**, with:","unit and case prices alongside each product;","exact case quantities rather than none/low/medium/high preferences;","a persistent basket that could be continued across sessions and accounts;","an additional-supplies route for needs outside Bankuet's normal range.","I kept v3.0 focused on request creation, leaving better search, further request-history improvements and help content for later releases.","I ran research with food banks to test what price changes between request and fulfilment they would accept. We also released v3 to a small group before wider rollout to reduce operational risk."],"competencies_demonstrated":["Product leadership on a live, multi-tenant platform","Financial and operational product design"],"showcase":{"provider":"vimeo","videoId":"1012782893","name":"How Bankuet Works For Food Banks","description":"An animated explanation of how Bankuet turns donations into the supplies food banks need most.","pageUrl":"https://vimeo.com/1012782893","embedUrl":"https://player.vimeo.com/video/1012782893","thumbnailUrl":"https://i.vimeocdn.com/video/1930632673-ab039db9f2d1346954a81843c3c8eee2c3a98c2200f30f8bec3eb1e575053762-d_2400?region=us","duration":"PT2M20S","caption":"How Bankuet Works For Food Banks · 2:20"},"outcomes":["bankuet-portal-processing-time","bankuet-portal-budget-underspend","bankuet-portal-support-queries"],"case_study":{"id":"bankuet-portal","title":"Bankuet: Giving food banks control over supply requests","card":{"title":"Food bank request portal","deliverable":"Led the shift from algorithmic allocations to quantities and visible prices.","outcomes":"Weekly processing ~4h → 1h · average underspend ~7% → 0%"},"seo":{"title":"Food bank request portal","description":"How I replaced algorithmic allocations with exact quantities and visible prices, reducing request processing from about four hours to one."},"projectContext":{"type":"organization","name":"Bankuet","url":"https://bankuet.co.uk"},"projectDate":{"precision":"day","value":"2024-07-09"},"published":"2026-08-05","updated":"2026-09-06","blurb":"Food banks could set a budget but not choose exact quantities. I led the shift to visible prices and case quantities, reducing weekly request processing from about four hours to one.","role":["Product Lead"],"responsibilitySummary":"I set direction, priorities and scope, and worked with our in-house UX Lead in Figma. I directed an external 2–4-person team across business analysis, engineering and QA, bringing in architecture support as needed.","decision":"Stop optimising an allocation algorithm and let food banks choose exact quantities against visible prices.","summary":["Before v3, a food bank did not tell Bankuet exactly how many cases of each product it wanted. It set a total budget and marked products high, medium or low priority. An algorithm chose the quantities, and our team often had to interpret or adjust the result.","I replaced that model with visible prices and exact case quantities. Food banks could see the cost of their choices and submit the request they actually wanted; Bankuet spent less time fixing the output."],"heroImage":{"src":"/images/foodbank-service-request-a-delivery.png","alt":"Bankuet's request interface, showing products that food banks can request by case quantity.","caption":"Choosing products by case quantity in the redesigned request interface."},"problem":{"intro":[],"items":["**Food banks could express priorities, not quantities.** They could say what mattered most, but not how many cases they wanted.","**They could not see the cost of each choice.** Without unit and case prices, users could not tell how a product affected their budget.","**Bankuet had to repair the algorithm's output.** Allocations could underspend the budget or need manual adjustment before ordering.","**Precise requests needed better financial context.** Food banks had limited information about previous requests, spending and their available balance."],"outro":["The evidence came from food bank feedback and my own experience processing Bankuet's supply orders each week."]},"constraints":{"intro":["The request form is not an isolated interface; it feeds Bankuet's weekly ordering operation. Three constraints shape it:"],"items":["**Requests feed a live weekly workflow.** Food bank requests flow directly into Bankuet's supply-ordering process, so errors in the request flow can create operational work as well as user confusion.","**Exact quantities depend on trustworthy financial context.** Food banks need reliable balances and visible prices before more granular control is useful.","**Prices can change before fulfilment.** The design needs a workable tolerance for changes between request and fulfilment rather than implying every displayed price is fixed."]},"hypotheses":{"intro":["If food banks can choose exact quantities against visible prices, requests should become more accurate and understandable, reducing manual intervention and algorithmic budget underspend."],"items":[]},"interventions":{"intro":["I did not jump straight to exact quantities. First I made balances, request history and spending clearer, because precise choices only help if the user can trust the budget they are spending.","With those foundations in place, **v3.0 — Volumes and Values** launched on **9 July 2024**, with:"],"items":["unit and case prices alongside each product;","exact case quantities rather than none/low/medium/high preferences;","a persistent basket that could be continued across sessions and accounts;","an additional-supplies route for needs outside Bankuet's normal range."],"outro":["I kept v3.0 focused on request creation, leaving better search, further request-history improvements and help content for later releases.","I ran research with food banks to test what price changes between request and fulfilment they would accept. We also released v3 to a small group before wider rollout to reduce operational risk."]},"comparison":{"intro":["The request model before and after v3:"],"items":[],"groups":[{"heading":"Before — describe priorities","intro":[],"items":["The food bank chooses an overall budget.","Products receive high, medium or low priorities.","An algorithm allocates quantities; Bankuet interprets or adjusts the result."]},{"heading":"After — choose quantities","intro":[],"items":["The food bank sees unit and case prices.","It chooses exact case quantities in a persistent basket.","The request expresses the supplies wanted rather than a set of relative preferences."]}]},"competenciesDemonstrated":["Product leadership on a live, multi-tenant platform","Financial and operational product design"],"showcase":{"provider":"vimeo","videoId":"1012782893","name":"How Bankuet Works For Food Banks","description":"An animated explanation of how Bankuet turns donations into the supplies food banks need most.","pageUrl":"https://vimeo.com/1012782893","embedUrl":"https://player.vimeo.com/video/1012782893","thumbnailUrl":"https://i.vimeocdn.com/video/1930632673-ab039db9f2d1346954a81843c3c8eee2c3a98c2200f30f8bec3eb1e575053762-d_2400?region=us","duration":"PT2M20S","caption":"How Bankuet Works For Food Banks · 2:20"},"outcomes":{"intro":["The strongest outcomes were operational:"],"items":[{"id":"bankuet-portal-processing-time","kind":"measured_outcome","claim":"Weekly request-processing time fell from approximately **four hours to one hour** — a 75% reduction.","metric":"request_processing_time","before":{"value":4,"unit":"hour"},"after":{"value":1,"unit":"hour"},"change":{"relative":-0.75},"measurement":{"source_type":"internal_operational_data","status":"author_reported","scope":"Weekly request-processing workflow"}},{"id":"bankuet-portal-budget-underspend","kind":"measured_outcome","claim":"Average budget underspend fell from approximately **7% to 0%**, comparing the three months before launch with the three months after.","metric":"budget_underspend","before":{"value":7,"unit":"%"},"after":{"value":0,"unit":"%"},"measurement":{"source_type":"internal_operational_data","status":"author_reported","comparison_period":"3 months pre-launch vs 3 months post-launch"}},{"id":"bankuet-portal-support-queries","kind":"measured_outcome","claim":"Finance- and request-related support queries fell by approximately **50%** across the wider v2→v3 programme — not v3 alone.","metric":"support_queries","change":{"relative":-0.5},"measurement":{"source_type":"internal_operational_data","status":"author_reported","comparison_period":"v2 → v3 programme"}}]},"evidenceScope":"Internal operational observations. Budget underspend compares three months before launch with three months after. The support-query reduction belongs to the wider v2→v3 programme."},"content_hash":"sha256:a26750a10217edc085dc783c9b34b4ac46e8dca11a635f7af79fcc2a9ce428d9","evaluation_scope":"Internal operational observations. Budget underspend compares three months before launch with three months after. The support-query reduction belongs to the wider v2→v3 programme.","limitations":[],"outcome_context":{"intro":["The strongest outcomes were operational:"],"outro":[]}},"claims":[{"id":"bankuet-portal-lead-role","subject":"laurence-peberdy","project_id":"bankuet-portal","kind":"responsibility","claim":"I set direction, priorities and scope, and worked with our in-house UX Lead in Figma. I directed an external 2–4-person team across business analysis, engineering and QA, bringing in architecture support as needed.","canonical_source":"https://laurence-peberdy.com/w/portal"},{"id":"bankuet-portal-processing-time","subject":"laurence-peberdy","project_id":"bankuet-portal","kind":"measured_outcome","claim":"Weekly request-processing time fell from approximately **four hours to one hour** — a 75% reduction.","metric":"request_processing_time","before":{"value":4,"unit":"hour"},"after":{"value":1,"unit":"hour"},"change":{"relative":-0.75},"provenance":{"source_type":"internal_operational_data","status":"author_reported","scope":"Weekly request-processing workflow"},"context":{"evaluation_scope":"Internal operational observations. Budget underspend compares three months before launch with three months after. The support-query reduction belongs to the wider v2→v3 programme.","limitations":[],"outcome_intro":["The strongest outcomes were operational:"],"outcome_outro":[]},"canonical_source":"https://laurence-peberdy.com/w/portal#bankuet-portal-processing-time"},{"id":"bankuet-portal-budget-underspend","subject":"laurence-peberdy","project_id":"bankuet-portal","kind":"measured_outcome","claim":"Average budget underspend fell from approximately **7% to 0%**, comparing the three months before launch with the three months after.","metric":"budget_underspend","before":{"value":7,"unit":"%"},"after":{"value":0,"unit":"%"},"provenance":{"source_type":"internal_operational_data","status":"author_reported","comparison_period":"3 months pre-launch vs 3 months post-launch"},"context":{"evaluation_scope":"Internal operational observations. Budget underspend compares three months before launch with three months after. The support-query reduction belongs to the wider v2→v3 programme.","limitations":[],"outcome_intro":["The strongest outcomes were operational:"],"outcome_outro":[]},"canonical_source":"https://laurence-peberdy.com/w/portal#bankuet-portal-budget-underspend"},{"id":"bankuet-portal-support-queries","subject":"laurence-peberdy","project_id":"bankuet-portal","kind":"measured_outcome","claim":"Finance- and request-related support queries fell by approximately **50%** across the wider v2→v3 programme — not v3 alone.","metric":"support_queries","change":{"relative":-0.5},"provenance":{"source_type":"internal_operational_data","status":"author_reported","comparison_period":"v2 → v3 programme"},"context":{"evaluation_scope":"Internal operational observations. Budget underspend compares three months before launch with three months after. The support-query reduction belongs to the wider v2→v3 programme.","limitations":[],"outcome_intro":["The strongest outcomes were operational:"],"outcome_outro":[]},"canonical_source":"https://laurence-peberdy.com/w/portal#bankuet-portal-support-queries"}],"relationships":[{"subject":"laurence-peberdy","predicate":"led","object":"bankuet-portal"},{"subject":"bankuet-portal","predicate":"produced_outcome","object":"bankuet-portal-processing-time"},{"subject":"bankuet-portal","predicate":"produced_outcome","object":"bankuet-portal-budget-underspend"},{"subject":"bankuet-portal","predicate":"produced_outcome","object":"bankuet-portal-support-queries"}],"canonical_source":"https://laurence-peberdy.com/w/portal"}