Cash Gap is one of those things that trips up a lot of small businesses.
If there is anything but "payment up front" going on in your business you have a cash gap.
If you are selling to your customers on "terms" (eg payment in 30, 60 or 90 days) then you have a big cash gap.
Cash Gap means you are "the bank". You are using your money to purchase goods and materials... while letting your payment, from the customer, sit in their bank not yours, for a number of days.
The problem with you being the bank is that an actual bank... you don't charge a fee for letting other people use your money.
The "model business" for cash gap management is Dell Computers.
If you have ever bought a Dell you know that after you have finished the designing of your system, you are asked to make payment, in full.
Then you are told that it will take a few days to build your system, which is true. But what they don't tell you is that they haven't even bought the parts for your system until you place and pay for your order.
That means that they have all the money that they need to make that parts purchase, in advance, and they have all the profit that they are going to make on the deal too, in advance.
If you can do business the same way as Dell, you should... it makes for a very healthy business.
If not, make sure you have terms that you think are fair and then have the courage to expect your customers to honor those terms.
In most cases, when Cash Gap is out of control, it is not an unwillingness on the part of the customer to pay when asked. It is a reluctance on the part of the business owner to ask for that payment.
Asking for payment, is not asking for a favor. You've done your job, now it's the customer's turn to do theirs.