{"id":2346,"date":"2026-04-07T10:32:48","date_gmt":"2026-04-07T10:32:48","guid":{"rendered":"https:\/\/aaxonix.com\/resources\/?post_type=case_study&#038;p=2346"},"modified":"2026-04-07T10:48:12","modified_gmt":"2026-04-07T10:48:12","slug":"structural-steel-distributor-debtor-days-zoho","status":"publish","type":"case_study","link":"https:\/\/aaxonix.com\/resources\/case-studies\/structural-steel-distributor-debtor-days-zoho\/","title":{"rendered":"How a Structural Steel Distributor Cut Overdue Debtor Days by 58%"},"content":{"rendered":"<style>\n\/* ===== CS BODY ===== *\/\n.cs-body{font-family:'Poppins',sans-serif;color:#1a1a2e;line-height:1.7;max-width:860px;margin:0 auto;padding:0 0 48px}\n.cs-body h2{font-size:1.55rem;font-weight:700;color:#0a2540;margin:2.4rem 0 1rem;letter-spacing:-0.01em}\n.cs-body p{margin:0 0 1rem;font-size:1rem}\n\n\/* ===== EYEBROW ===== *\/\n.cs-eyebrow{display:inline-block;background:#e8f0fe;color:#1a56db;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:4px;margin-bottom:14px}\n.cs-body h1{font-size:2rem;font-weight:700;color:#0a2540;line-height:1.25;margin:0 0 1.6rem;letter-spacing:-0.02em}\n\n\/* ===== SNAPSHOT TILES ===== *\/\n.cs-snapshot{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:0 0 2.4rem}\n.cs-snap-tile{background:#f0f4ff;border:1px solid #d0daf8;border-radius:10px;padding:18px 14px;text-align:center}\n.cs-snap-label{font-size:.72rem;font-weight:600;color:#5a6a8a;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}\n.cs-snap-val{font-size:1.05rem;font-weight:700;color:#0a2540}\n@media(max-width:640px){.cs-snapshot{grid-template-columns:repeat(2,1fr)}}\n\n\/* ===== PROBLEM CARDS ===== *\/\n.cs-problem-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:0 0 2rem}\n.cs-problem-card{background:#fff7f5;border:1px solid #fcddd6;border-radius:10px;padding:20px 16px}\n.cs-pc-icon{width:36px;height:36px;background:#fde8e3;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}\n.cs-pc-icon svg{width:18px;height:18px;stroke:#c0392b;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}\n.cs-problem-card h3{font-size:.9rem;font-weight:700;color:#7b1a0a;margin:0 0 6px}\n.cs-problem-card p{font-size:.85rem;color:#5c3a30;margin:0}\n@media(max-width:640px){.cs-problem-grid{grid-template-columns:1fr}}\n\n\/* ===== SOLUTION STACK ===== *\/\n.cs-solution-stack{display:flex;flex-direction:column;gap:16px;margin:0 0 2rem}\n.cs-sol-row{display:flex;align-items:flex-start;gap:14px;background:#f5fff8;border:1px solid #c3e6cb;border-radius:10px;padding:16px 18px}\n.cs-sol-badge{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:80px}\n.cs-sol-product{font-size:.65rem;font-weight:700;color:#155724;text-transform:uppercase;letter-spacing:.05em;text-align:center}\n.cs-sol-module{background:#155724;color:#fff;font-size:.62rem;font-weight:600;border-radius:4px;padding:2px 7px;text-align:center;white-space:nowrap}\n.cs-sol-body h4{font-size:.9rem;font-weight:700;color:#0a2540;margin:0 0 4px}\n.cs-sol-body p{font-size:.85rem;color:#2d4a3e;margin:0}\n\n\/* ===== BEFORE VS AFTER TABLE ===== *\/\n.cs-ba-table{width:100%;border-collapse:collapse;margin:0 0 2rem;font-size:.88rem}\n.cs-ba-table thead tr{background:#0a2540;color:#fff}\n.cs-ba-table thead th{padding:11px 14px;text-align:left;font-weight:600}\n.cs-ba-table tbody tr:nth-child(even){background:#f4f7ff}\n.cs-ba-table tbody td{padding:10px 14px;border-bottom:1px solid #dde4f0;vertical-align:top}\n.cs-ba-table td:first-child{font-weight:600;color:#0a2540;width:34%}\n.cs-ba-table td:nth-child(2){color:#c0392b}\n.cs-ba-table td:nth-child(3){color:#155724}\n\n\/* ===== TIMELINE ===== *\/\n.cs-timeline{position:relative;padding-left:44px;margin:0 0 2rem}\n.cs-timeline::before{content:'';position:absolute;left:15px;top:6px;bottom:6px;width:2px;background:#d0daf8}\n.cs-tl-item{position:relative;margin-bottom:28px}\n.cs-tl-item:last-child{margin-bottom:0}\n.cs-tl-badge{position:absolute;left:-44px;top:2px;width:32px;height:32px;border-radius:50%;background:#1a56db;color:#fff;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:1}\n.cs-tl-content{background:#f8faff;border:1px solid #dde4f0;border-radius:10px;padding:14px 16px}\n.cs-tl-title{font-size:.9rem;font-weight:700;color:#0a2540;margin:0 0 4px}\n.cs-tl-dur{font-size:.75rem;color:#5a6a8a;font-weight:600;margin-bottom:6px}\n.cs-tl-content p{font-size:.84rem;color:#3a4a60;margin:0}\n\n\/* ===== STATS + CHART ===== *\/\n.cs-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 1.6rem}\n.cs-stat-card{background:#0a2540;border-radius:10px;padding:22px 16px;text-align:center}\n.cs-stat-num{font-size:2rem;font-weight:800;color:#4fc3f7;line-height:1}\n.cs-stat-lbl{font-size:.75rem;font-weight:600;color:#90bfd8;text-transform:uppercase;letter-spacing:.06em;margin-top:6px}\n.cs-chart-wrap{position:relative;position:relative;height:340px;background:#f8faff;border:1px solid #dde4f0;border-radius:10px;padding:20px;margin:0 0 2rem}\n.cs-chart-title{font-size:.85rem;font-weight:700;color:#0a2540;margin:0 0 14px;text-align:center}\n@media(max-width:640px){.cs-stats-grid{grid-template-columns:1fr}}\n\n\/* ===== TAKEAWAY ===== *\/\n.cs-takeaway{background:#0a2540;color:#e8f0fe;border-radius:12px;padding:28px 28px 24px;margin:0 0 2.4rem}\n.cs-takeaway h3{font-size:1.1rem;font-weight:700;color:#7dd3fc;margin:0 0 10px}\n.cs-takeaway p{font-size:.93rem;line-height:1.7;color:#c9d9ec;margin:0}\n\n\/* ===== FAQ ===== *\/\n.cs-faq{margin:0}\n.cs-faq-item{border-bottom:1px solid #dde4f0;padding:16px 0}\n.cs-faq-item:first-child{border-top:1px solid #dde4f0}\n.cs-faq-q{font-size:.95rem;font-weight:700;color:#0a2540;margin:0 0 6px}\n.cs-faq-a{font-size:.88rem;color:#3a4a60;margin:0}\n<\/style>\n\n<div class=\"cs-body\">\n\n  <!-- Eyebrow + H1 -->\n  <span class=\"cs-eyebrow\">TMT Bar and Structural Steel Distribution<\/span>\n  <h1>How a Structural Steel Distributor Cut Overdue Debtor Days by 58%<\/h1>\n\n  <!-- Snapshot 4-up tiles -->\n  <div class=\"cs-snapshot\">\n    <div class=\"cs-snap-tile\">\n      <div class=\"cs-snap-label\">Industry<\/div>\n      <div class=\"cs-snap-val\">TMT and Structural Steel Distribution<\/div>\n    <\/div>\n    <div class=\"cs-snap-tile\">\n      <div class=\"cs-snap-label\">Overdue Credit at Start<\/div>\n      <div class=\"cs-snap-val\">Rs2.1 Cr across 5 accounts<\/div>\n    <\/div>\n    <div class=\"cs-snap-tile\">\n      <div class=\"cs-snap-label\">Timeline<\/div>\n      <div class=\"cs-snap-val\">7 months to full results<\/div>\n    <\/div>\n    <div class=\"cs-snap-tile\">\n      <div class=\"cs-snap-label\">Stack<\/div>\n      <div class=\"cs-snap-val\">Zoho Books, CRM, Analytics, Flow<\/div>\n    <\/div>\n  <\/div>\n\n  <!-- The Problem -->\n  <h2>The Problem<\/h2>\n  <p>Steel distribution is a credit-heavy business. Contractors draw stock on account, projects overrun, and payment schedules slip. That is normal. What is not normal is running five large contractor relationships with no live visibility into how far each account has drifted past its approved credit limit.<\/p>\n  <!-- internal link: manufacturing industry page -->\n  <p>That was the situation here. Five accounts had accumulated Rs2.1 Cr in overdue balances. The books in Tally showed the numbers, but nobody was receiving an alert when a threshold was crossed. Sales teams were booking fresh orders for accounts already in arrears. The finance manager was producing a monthly ageing report by exporting data to Excel, a process that took two days and was already outdated by the time it reached the director.<\/p>\n\n  <div class=\"cs-problem-grid\">\n    <div class=\"cs-problem-card\">\n      <div class=\"cs-pc-icon\">\n        <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg>\n      <\/div>\n      <h3>No breach alerts<\/h3>\n      <p>Credit limit breaches were discovered during the monthly Excel review, not when they happened. Fresh dispatches continued on accounts already overdue.<\/p>\n    <\/div>\n    <div class=\"cs-problem-card\">\n      <div class=\"cs-pc-icon\">\n        <svg viewBox=\"0 0 24 24\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg>\n      <\/div>\n      <h3>Disconnected systems<\/h3>\n      <p>Tally held AR data, a separate sheet tracked credit limits, and the CRM held contact notes. None of them spoke to each other, so no single view existed.<\/p>\n    <\/div>\n    <div class=\"cs-problem-card\">\n      <div class=\"cs-pc-icon\">\n        <svg viewBox=\"0 0 24 24\"><rect x=\"1\" y=\"4\" width=\"22\" height=\"16\" rx=\"2\" ry=\"2\"\/><line x1=\"1\" y1=\"10\" x2=\"23\" y2=\"10\"\/><\/svg>\n      <\/div>\n      <h3>GST input credit leakage<\/h3>\n      <p>Unreconciled invoices meant GSTR-2A mismatches went undetected until the quarterly review, causing Rs19L in claimable input credit to lapse each year.<\/p>\n    <\/div>\n  <\/div>\n\n  <p>The core issue was structural: credit decisions were made in the CRM or over the phone, invoice ageing lived in Tally or Excel, and no automated link existed between the two. By the time the finance team flagged a breach, the account had often received two or three additional dispatches worth of credit.<\/p>\n\n  <!-- Solution Stack -->\n  <h2>The Solution Stack<\/h2>\n  <div class=\"cs-solution-stack\">\n    <div class=\"cs-sol-row\">\n      <div class=\"cs-sol-badge\">\n        <span class=\"cs-sol-product\">Zoho Books<\/span>\n        <span class=\"cs-sol-module\">AR and GST<\/span>\n      <\/div>\n      <div class=\"cs-sol-body\">\n        <h4>Live ageing and credit enforcement at the invoice level<\/h4>\n        <p>All invoicing and payment tracking migrated from Tally to <a href=\"https:\/\/aaxonix.com\/products\/zoho-books\/\" class=\"sp-content-link\">Zoho Books credit management<\/a>. Credit limits were set per customer account. Books now blocks a new sales order automatically when the outstanding balance plus the new order value exceeds the approved limit. GSTR-2A auto-reconciliation runs nightly so input credit gaps surface within 24 hours, not 90 days.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"cs-sol-row\">\n      <div class=\"cs-sol-badge\">\n        <span class=\"cs-sol-product\">Zoho CRM<\/span>\n        <span class=\"cs-sol-module\">Credit visibility<\/span>\n      <\/div>\n      <div class=\"cs-sol-body\">\n        <h4>Overdue balance widget embedded in every account record<\/h4>\n        <p>A custom widget pulls live AR data from Zoho Books into the CRM account view. Sales reps see the current overdue amount, the credit limit utilisation percentage, and the oldest unpaid invoice date before making a call or accepting a fresh order request. No toggling between systems required.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"cs-sol-row\">\n      <div class=\"cs-sol-badge\">\n        <span class=\"cs-sol-product\">Zoho Flow<\/span>\n        <span class=\"cs-sol-module\">Escalation<\/span>\n      <\/div>\n      <div class=\"cs-sol-body\">\n        <h4>Tiered escalation triggered by ageing thresholds<\/h4>\n        <p>Flow monitors Zoho Books invoice records every four hours. When an account crosses 30 days overdue, the account manager receives a WhatsApp and email alert. At 45 days, the credit controller is copied. At 60 days, a CRM task is auto-created for director review and the account is flagged for hold-pending-approval. No manual intervention required to trigger these escalations.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"cs-sol-row\">\n      <div class=\"cs-sol-badge\">\n        <span class=\"cs-sol-product\">Zoho Analytics<\/span>\n        <span class=\"cs-sol-module\">Reporting<\/span>\n      <\/div>\n      <div class=\"cs-sol-body\">\n        <h4>Daily AR dashboard replacing the two-day Excel export<\/h4>\n        <p>A shared dashboard shows debtor days by account, credit limit utilisation, overdue trend by product category (TMT bars vs structural sections), and GST reconciliation status. The director opens it each morning. The two-day export cycle is gone.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Before vs After -->\n  <h2>Before vs After<\/h2>\n  <table class=\"cs-ba-table\">\n    <thead>\n      <tr>\n        <th>Area<\/th>\n        <th>Before<\/th>\n        <th>After<\/th>\n      <\/tr>\n    <\/thead>\n    <tbody>\n      <tr>\n        <td>Credit breach detection<\/td>\n        <td>Monthly Excel review, 30-60 day lag<\/td>\n        <td>Automated alert within 4 hours of threshold crossing<\/td>\n      <\/tr>\n      <tr>\n        <td>Fresh orders on overdue accounts<\/td>\n        <td>No block, dispatches continued freely<\/td>\n        <td>Zoho Books blocks sales order at credit limit<\/td>\n      <\/tr>\n      <tr>\n        <td>AR visibility for sales team<\/td>\n        <td>No access, required finance team query<\/td>\n        <td>Live CRM widget on every account record<\/td>\n      <\/tr>\n      <tr>\n        <td>GST input credit reconciliation<\/td>\n        <td>Quarterly, Rs19L lapsing annually<\/td>\n        <td>Nightly auto-reconciliation, zero lapses since go-live<\/td>\n      <\/tr>\n      <tr>\n        <td>Ageing report generation<\/td>\n        <td>2 days manual Excel work per month<\/td>\n        <td>Live, auto-refreshed Analytics dashboard<\/td>\n      <\/tr>\n      <tr>\n        <td>Escalation process<\/td>\n        <td>Ad hoc, depended on finance manager availability<\/td>\n        <td>Three-tier automated escalation via Zoho Flow<\/td>\n      <\/tr>\n      <tr>\n        <td>Overdue debtor days (5 key accounts)<\/td>\n        <td>Avg 74 days overdue<\/td>\n        <td>Avg 31 days overdue (58% reduction in 7 months)<\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n\n  <!-- Implementation Phases -->\n  <h2>Implementation Phases<\/h2>\n  <div class=\"cs-timeline\">\n    <div class=\"cs-tl-item\">\n      <div class=\"cs-tl-badge\">1<\/div>\n      <div class=\"cs-tl-content\">\n        <div class=\"cs-tl-title\">Tally migration and Zoho Books setup<\/div>\n        <div class=\"cs-tl-dur\">Weeks 1 to 4<\/div>\n        <p>Opening balances, customer master data, and 18 months of invoice history migrated from Tally to Zoho Books. Credit limits configured for all 47 active accounts. GST settings aligned to applicable rates for TMT bars and structural steel sections. Chart of accounts restructured to match FY cycle reporting requirements.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"cs-tl-item\">\n      <div class=\"cs-tl-badge\">2<\/div>\n      <div class=\"cs-tl-content\">\n        <div class=\"cs-tl-title\">CRM integration and AR widget build<\/div>\n        <div class=\"cs-tl-dur\">Weeks 5 to 8<\/div>\n        <p><a href=\"https:\/\/aaxonix.com\/products\/zoho-crm\/\" class=\"sp-content-link\">Zoho CRM collections tracking<\/a> connected to Books via native integration. Custom AR widget built using the Books API and embedded in the CRM Accounts module. Sales team trained on reading overdue balance indicators. Duplicate account records cleaned and consolidated during data preparation.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"cs-tl-item\">\n      <div class=\"cs-tl-badge\">3<\/div>\n      <div class=\"cs-tl-content\">\n        <div class=\"cs-tl-title\">Zoho Flow escalation rules and WhatsApp alerts<\/div>\n        <div class=\"cs-tl-dur\">Weeks 9 to 11<\/div>\n        <p>Three escalation tiers built in Zoho Flow with four-hour polling intervals. WhatsApp Business API connected for field sales notifications. Test runs across the five historically problematic accounts confirmed alert delivery and CRM task creation. Director-level hold flag logic reviewed and approved before go-live.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"cs-tl-item\">\n      <div class=\"cs-tl-badge\">4<\/div>\n      <div class=\"cs-tl-content\">\n        <div class=\"cs-tl-title\">Analytics dashboards and GST reconciliation<\/div>\n        <div class=\"cs-tl-dur\">Weeks 12 to 16<\/div>\n        <p><a href=\"https:\/\/aaxonix.com\/products\/zoho-analytics\/\" class=\"sp-content-link\">Zoho Analytics debtor reports<\/a> workspace built with five dashboards: daily AR summary, credit utilisation by account, overdue trend, product-category collections performance, and GSTR-2A reconciliation status. Nightly GST sync enabled. Finance and director teams onboarded. Monthly Excel report formally retired.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Results -->\n  <h2>Results After Seven Months<\/h2>\n  <div class=\"cs-stats-grid\">\n    <div class=\"cs-stat-card\">\n      <div class=\"cs-stat-num\" data-countup data-target=\"58\" data-suffix=\"%\">58%<\/div>\n      <div class=\"cs-stat-lbl\">Reduction in overdue debtor days<\/div>\n    <\/div>\n    <div class=\"cs-stat-card\">\n      <div class=\"cs-stat-num\" data-countup data-target=\"3.2\" data-suffix=\"x\">3.2x<\/div>\n      <div class=\"cs-stat-lbl\">Faster credit limit breach alerts<\/div>\n    <\/div>\n    <div class=\"cs-stat-card\">\n      <div class=\"cs-stat-num\" data-countup-text>Rs19L<\/div>\n      <div class=\"cs-stat-lbl\">Annual GST input credit recovered<\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"cs-chart-wrap\">\n    <div class=\"cs-chart-title\">Average overdue days: top 5 contractor accounts (before vs after)<\/div>\n    <canvas id=\"csDebtorChart\" height=\"260\"><\/canvas>\n  <\/div>\n\n  <!-- Takeaway -->\n  <div class=\"cs-takeaway\">\n    <h3>The core lesson from this engagement<\/h3>\n    <p>In steel distribution, credit risk is not a finance problem, it is a systems problem. When credit limits live in a spreadsheet and AR data lives in a separate accounting package, no alert can fire automatically, no sales rep has context before accepting a new order, and overdue balances compound quietly for months. Connecting Zoho Books and CRM so that credit data and invoice ageing share the same source of truth turns a reactive monthly process into a real-time control layer. The 58% reduction in overdue debtor days came not from chasing customers harder, but from stopping additional credit from flowing to accounts already in breach.<\/p>\n  <\/div>\n\n  <!-- FAQ -->\n  <h2>Frequently Asked Questions<\/h2>\n  <div class=\"cs-faq\">\n    <div class=\"cs-faq-item\">\n      <p class=\"cs-faq-q\">Can Zoho Books enforce credit limits without blocking every new order manually?<\/p>\n      <p class=\"cs-faq-a\">Yes. Zoho Books has a built-in credit limit field at the customer level. When a new sales order is raised and the total of outstanding invoices plus the new order value exceeds the configured limit, Books either warns the user or blocks the order entirely, depending on the setting chosen. No manual check is required from the finance team for routine orders.<\/p>\n    <\/div>\n    <div class=\"cs-faq-item\">\n      <p class=\"cs-faq-q\">How does Zoho Flow connect to WhatsApp for overdue alerts?<\/p>\n      <p class=\"cs-faq-a\">Zoho Flow connects to WhatsApp Business via the WhatsApp Business Cloud API. A Flow trigger monitors the invoice ageing field in Zoho Books on a scheduled interval. When a configured threshold is crossed, Flow sends a pre-approved WhatsApp template message to the relevant account manager or credit controller. The message includes the account name, overdue amount, and number of days past due.<\/p>\n    <\/div>\n    <div class=\"cs-faq-item\">\n      <p class=\"cs-faq-q\">What does migrating from Tally to Zoho Books typically involve for a trading business?<\/p>\n      <p class=\"cs-faq-a\">A standard Tally-to-Zoho Books migration for a distribution business covers exporting the customer master, vendor master, and opening balance data from Tally, cleaning and mapping it to Zoho Books fields, configuring GST tax codes and HSN mappings, setting up chart of accounts aligned to the FY structure, and importing historical invoices for the required lookback period. Most implementations also include a parallel-run period of two to four weeks before Tally is fully retired.<\/p>\n    <\/div>\n    <div class=\"cs-faq-item\">\n      <p class=\"cs-faq-q\">How is GSTR-2A reconciliation automated in Zoho Books?<\/p>\n      <p class=\"cs-faq-a\">Zoho Books connects to the GST portal via the GSTIN-linked API. It downloads the GSTR-2A data filed by your suppliers and matches it against the purchase invoices recorded in Books. Mismatches, such as invoices where the supplier has not filed or where the taxable value differs, appear in a reconciliation report. Setting this to run nightly means any gap surfaces within 24 hours of the supplier&#8217;s filing, well within the window to follow up before the input credit lapses.<\/p>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<script>\n(function(){\n  \/* CountUp for stat cards *\/\n  function animateCount(el){\n    var target=parseFloat(el.getAttribute('data-target'));\n    var suffix=el.getAttribute('data-suffix')||'';\n    var decimals=target%1!==0?1:0;\n    var duration=1800;\n    var start=null;\n    function step(ts){\n      if(!start)start=ts;\n      var progress=Math.min((ts-start)\/duration,1);\n      var ease=1-Math.pow(1-progress,3);\n      var val=(target*ease);\n      el.textContent=(decimals?val.toFixed(1):Math.round(val))+suffix;\n      if(progress<1)requestAnimationFrame(step);\n    }\n    requestAnimationFrame(step);\n  }\n  var observer=new IntersectionObserver(function(entries){\n    entries.forEach(function(e){\n      if(e.isIntersecting){\n        animateCount(e.target);\n        observer.unobserve(e.target);\n      }\n    });\n  },{threshold:0.5});\n  document.querySelectorAll('[data-countup]').forEach(function(el){observer.observe(el);});\n\n  \/* Chart.js ,  overdue days before vs after per account *\/\n  var script=document.createElement('script');\n  script.src='https:\/\/cdn.jsdelivr.net\/npm\/chart.js@4.4.0\/dist\/chart.umd.min.js';\n  script.onload=function(){\n    var ctx=document.getElementById('csDebtorChart').getContext('2d');\n    new Chart(ctx,{\n      type:'bar',\n      data:{\n        labels:['Account A','Account B','Account C','Account D','Account E'],\n        datasets:[\n          {label:'Before (days overdue)',data:[91,78,82,65,54],backgroundColor:'#fca5a5',borderRadius:5},\n          {label:'After (days overdue)',data:[38,32,35,26,24],backgroundColor:'#4ade80',borderRadius:5}\n        ]\n      },\n      options:{\n        responsive:true,\n        plugins:{\n          legend:{position:'top',labels:{font:{size:12},color:'#0a2540'}},\n          tooltip:{callbacks:{label:function(c){return c.dataset.label+': '+c.parsed.y+' days';}}}\n        },\n        scales:{\n          y:{beginAtZero:true,ticks:{color:'#5a6a8a'},grid:{color:'#e8edf5'},title:{display:true,text:'Days overdue',color:'#5a6a8a',font:{size:11}}},\n          x:{ticks:{color:'#5a6a8a'},grid:{display:false}}\n        }\n      }\n    });\n  };\n  document.head.appendChild(script);\n})();\n<\/script>","protected":false},"excerpt":{"rendered":"<p>A structural steel trading firm recovered Rs19L in GST input credit and reduced debtor days by 58% using Zoho Books and CRM&#8230;<\/p>\n","protected":false},"featured_media":2345,"template":"","meta":{"cs_card_title":"How a Structural Steel Distributor Cut Overdue Debtor Days by 58%","cs_result_num":"58%","cs_result_label":"Debtor days reduced","cs_stat2_num":"3.2x","cs_stat2_label":"Faster credit limit breach alerts","cs_stat3_num":"Rs19L","cs_stat3_label":"GST input credit recovered","cs_challenge":"Five contractor accounts held Rs2.1Cr in overdue credit with no breach alerts.","cs_solution":"Zoho Books and CRM linked credit limits to live invoice ageing with auto-escalation.","cs_tools":"Zoho Books, Zoho CRM, Zoho Analytics, Zoho Flow"},"cs_industry":[431],"class_list":["post-2346","case_study","type-case_study","status-publish","has-post-thumbnail","hentry","cs_industry-distribution"],"_links":{"self":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/case_study\/2346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/case_study"}],"about":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/types\/case_study"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/media\/2345"}],"wp:attachment":[{"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/media?parent=2346"}],"wp:term":[{"taxonomy":"cs_industry","embeddable":true,"href":"https:\/\/aaxonix.com\/resources\/wp-json\/wp\/v2\/cs_industry?post=2346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}