Thanks for the detailed reply.Step 1. Find out when your billing period ends/statement date is
If your statement date is a number > 20, then contact Citibank and get it moved. Yes, you can do this, they will do this if you ask. Get a statement date ≤ 20
Step 2. Schedule your first PayAll payment date to be an amount ≤ 95% of your credit limit ($19,000 in your case) on your statement date + 5 days
Step 3. Schedule your second PayAll payment to be for an amount of 20K - PayAll 1 payment amount and schedule it for your statement date + 8 days.
In essence, make all in/out PayAll payments 3 days apart minimum. Citibank processes payments in a very rubbery 3 day window around when you specify them to occur. The 3 day window is to allow for things like weekends, public holidays etc. which in Citibank accounting world simply don't exist. Citibank works very strictly only on banking work days. Weekends/holidays do not count. When Citibank says they will process payment 3 days before the schedule, they mean three days out of Mon/Tue/Wed/Thu/Fri only and only when all of those are NOT a gazetted public holiday. Be very aware of this. Don't try to argue it, this is how Citibank works. You have to organise your life around Citibank, they will not bend for you.
To make things easier to understand / remember, would a statement date late in the month (say 28th) work, as it would result in the first payment happening at the very start of the next month and then the money would sit in a HISA for longer, before being moved back later that month.
What is the logic of the issue with the statement date being >20th?