السنبلة مجموعة S U N B U L A H G R O U P C A S E S T U D Y Credit Control & Order Release Dashboard A case study by Abdullah Alsulami C O M P A N Y Sunbulah Group Credit Control R O L E End-to-end design & build S T A C K React · TypeScript SAP GUI · SQLite I M P A C T 3× faster releases 10× throughput 0 1 — O V E R V I E W Releasing blocked orders shouldn't take a spreadsheet and a dozen emails. Sunbulah extends credit to hundreds of distributors and retail chains across the Kingdom. When a customer's order exceeds their available credit, SAP automatically blocks it. Clearing that block — the release decision — used to mean an analyst hunting through SAP screens, exported aging reports, guarantee files, and insurance limits before approving or holding each order by hand. The problem Decisions lived in many places. Aging, bank guarantees, promissory notes and credit- insurance limits each sat in a separate SAP transaction or file. Slow response times. Sales waited hours for a yes/no while orders sat blocked — eroding service levels during peak demand. The approach One workbench. Pull every signal an analyst needs — exposure, aging, coverage, insurance — into a single decision view. Read from SAP, decide in-app. Scripted extracts keep data live; the release writes back to SAP. Log everything. Every release, hold and escalation is captured with who, when and why. Outcome 3× Faster response time on release requests, from hours to minutes. 10× More release requests handled efficiently per analyst, per day. 100% Of decisions now logged with full context for audit and review. 0 2 — T H E P R O D U C T A single view of receivables and risk. The home screen answers the analyst's first question — where is the money, and where is it at risk? — before they touch a single order. For confidentiality purposes, the names and numbers shown have been changed and do not reflect actual company data. Credit Control Overview Release Guarantees Insurance Collectors Search customer... Receivables Overview All sales organizations · updated 09:42 today ⊞ All Orgs Local Export ▣ T O T A L R E C E I V A B L E S SAR 248.6M across 412 active payers ⚠ O V E R D U E SAR 31.2M 12.5% of book ▲ 1.4% ⊙ R E L E A S E D T O D A Y 142 SAR 8.4M cleared ◈ A T - R I S K E X P O S U R E SAR 19.7M 7 customers on watch Receivables by aging bucket View report → Current 187.4M 1–30 days 28.1M 31–60 days 14.6M 61–90 days 6.8M 90+ days 11.7M Total book 248.6M Top exposures 412 payers C U S TOME R EX PO SUR E OVE RD UE WOR ST BUC KET CO VERAGE Panda Retail Co. 0001045872 · Z060 14.2M 1.1M CURRENT 92% Abudawood Trading 0001033410 · Z045 9.8M 2.6M 1–30 78% Al Sadhan Trading 0001028199 · Z060 7.4M 3.9M 90+ 41% Othaim Markets 0001041007 · Z030 6.1M 0.4M CURRENT 100% Bin Dawood Stores 0001037655 · Z045 5.3M 1.8M 31–60 64% Risk watch 7 flagged Al Sadhan Trading HIGH 90+ · SAR 3.9M overdue cover 41% Tamimi Markets WATCH 61–90 · SAR 2.1M overdue cover 70% Manuel Food Co. WATCH 31–60 · limit breach cover 55% Coverage mix SAR 96M secured Bank guarantees SAR 61.0M Credit insurance SAR 24.5M Promissory notes SAR 10.5M Pending release queue 23 orders · SAR 4.7M awaiting decision 0 3 — T H E C O R E W O R K F L O W The Order Release Workbench. This is where the work happens. Every SAP-blocked order lands in one queue, pre-scored against the customer's credit limit, aging, guarantee coverage and insurance — so a decision takes seconds, not a screen tour. Credit Control Overview Release Guarantees Insurance Collectors ⊟ Local Export Release Workbench — Local 23 blocked orders · SAR 4.7M · sorted by risk ▽ All Needs review Escalated O R DE R CUSTO ME R O RDER V ALUE AVAIL . CREDI T CO VERAGE AGING RECOMM END ATION 0090231184 Othaim Markets 0001041007 412,800 +1.9M 100% CURRENT ✓ Auto-release 0090231207 Abudawood Trading 0001033410 688,400 +220K 78% 1–30 ✓ Release 0090231233 Bin Dawood Stores 0001037655 531,000 −96K 64% 31–60 ▦ Review 0090231251 Al Sadhan Trading 0001028199 274,500 −1.4M 41% 90+ ↗ Escalate 0090231268 Manuel Food Co. 0001052240 158,900 −42K 55% 31–60 ▦ Review ✓ Release selected ▭ Add note ⬆ Push to SAP Decision logged · analyst FA · 09:44 How a release flows S A P Order blocked Order exceeds the customer's credit limit and SAP holds it. S C R I P T Extract & sync Scripted pull lands the order and its context in the workbench. E N G I N E Auto-score Checks limit, aging, guarantee & insurance, then recommends. A N A L Y S T Decide Release, hold or escalate — with a logged reason. S A P Write back Approved orders are unblocked in SAP automatically. B E F O R E Manual, opaque, slow 5–7 SAP screens & exports per decision Hours of turnaround during peak demand Reasoning lived in inboxes, not records One analyst capacity-bound A F T E R One screen, scored, logged Every signal in a single decision view Minutes to clear, 3× faster response Full audit trail on every release 10× more requests handled per analyst 0 4 — I N S I D E T H E S Y S T E M Six modules, one source of truth. Each module owns a slice of the credit picture. Together they replace the folder of spreadsheets the team used to keep. AR Aging Customer receivables split into Current → 90+ buckets, drillable to invoice level, refreshed daily from SAP. 5 buckets invoice drill-down Bank Guarantees & PNs Tracks guarantee and promissory-note instruments, values, expiry and which payer they secure — feeding live coverage ratios. expiry alerts coverage % Credit Insurance Insured limits per customer and policy, with utilization against each limit so analysts see the uninsured tail. per-policy limits utilization Order Release Workbench The decision queue for local and export orders, with auto-scoring and one-click write-back to SAP. local + export SAP write-back Collector Tracker Assigns overdue accounts to collectors and tracks promises-to-pay, follow-ups and recovery progress. promise-to-pay follow-ups Risk Watch Surfaces customers breaching limits, aging out or under-covered — the early-warning rail across every screen. limit breach early warning 0 5 — H O W I B U I L T I T End to end — data, logic and interface. I owned the full project: integrating with SAP, modeling the data, building the service layer and designing the front end. The architecture stays deliberately lean so a single person can run and maintain it. Source SAP GUI — receivables, blocks, limits Manual imports — guarantees, insurance, notes Ingest SAP scripting automates extracts Normalizes & loads on a schedule Service TypeScript API & scoring engine SQLite store + decision log Interface React dashboard & workbench Role-based views, audit trail Stack & rationale F R O N T E N D React — component-driven UI for the dashboard, workbench and module views. B A C K E N D TypeScript — typed service layer, scoring rules and SAP write-back. I N T E G R A T I O N SAP scripting — automates extracts and pushes releases back into SAP. D A T A B A S E SQLite — lightweight, file-based store with a full decision log. From dozens of daily emails to one screen — credit decisions that are fast, scored and fully on the record. Sunbulah Group Credit Control