From my personal experience with 13 years in child care, both teaching many years in all class ages and even owning my own center that was licensed for 30, with 58 registered and attending. Some of my parents worked 3-11 so about half of the kids were there after other kids had gone home for the day.
If you are going to accept kids that the state pays any or all of their cost then you don't need a contract because the people who have state child care assistance don't have to follow any contract you make. You cannot make them pay a PENNY more than their co-pay, they cannot be charged late fees, they cannot be charged for field trips, etc....it is discrimination to make cash paying parents pay these fees and not everyone. Asking them to give notice is a polite consideration but they usually won't give it, they just won't show up and won't call. You can put anything in your contract you want but it is NOT a legal contract, there is no filing, no notary, etc...so if your parents go by then that's good but it really isn't enforcible. I stopped doing one after a year of learning. I had a handbook that listed some things that I asked them to do , such as giving notice if they were leaving so I could fill their spots or not buy groceries for their kids.
If you have your states child care handbook that the licensing agency gave you then there should be a pay scale in the appendix's that shows what the pay rates to providers are for the state.
The pro's for taking the kids that state pays for are:
The state is never late, the deposit from the state is there every week, it may be late due to a holiday or some other thing but it always shows up, you can really rely on that money, their check won't bounce...
One instance that I look back on as an educational moment: I paid my staff like always on Monday and didn't realize MLK day was a legal holiday and banks were closed. My staff's checks cleared due to over draft protection but I paid a lot of fees for not checking first to make sure my deposit was there. That was the only time that happened because I always called on Monday mornings to make sure my deposit had come, and I changed paydays to another day so I would not have that issue again.
Good luck.