How Miss and Pay handles a missed day
A past date with no pass is forfeited when you open the contract. The rest of the contract continues.
A missed day is a contract date that has already ended in your timezone and has no pass. Miss and Pay does not need a nightly job to decide that. The ledger computes it when you open the contract. Any past date still marked pending becomes forfeited. Today stays open until the day ends. Future days stay ahead of you.
The link for a day is /check/, then the contract id, then the date. That page can complete only that local date, and only if that date is today in the timezone stored when you started. /today sends you to the current day of your latest contract. If you open yesterday's link, the page will not take a pass for it. There is no grace window. stickK gives a reporting window that can run past the due day. Miss and Pay does not. The day ends when the date changes where you are.
Forfeited means that day's stake is kept as the fee for the broken day. It is not sent to a charity, a friend, or another user. The other days are untouched. If you miss Tuesday and keep Wednesday, Tuesday is forfeited and Wednesday is refundable. You do not fail the whole contract by failing one day.
You can close early. Closing sets today as the close date. Days before that, with no pass, are forfeited. Today, if you have not passed it, and every later day are treated as not yet due. Those are refunded together with the days you kept. The button asks for one partial refund. If a refund was already requested, the button does not create a second one. If every day was missed, the amount is zero and nothing is sent. If Stripe is not configured, the page shows the amount that would be refunded and does not pretend it was sent.
The contract cannot run longer than 30 days, and the other choices are 7 and 14. That keeps the refund close to the original charge. Stripe's refunds docs say the money goes back to the same card and that you may see it in about 5 to 10 business days.
If you travel, the timezone does not follow you. The contract stores the IANA timezone from the browser at the start. Today is today in that zone, even if you are somewhere else. That is deliberate. A moving definition of midnight is an easy way to argue a miss into a pass.
Can I check in late the next morning?
No. The check-in completes only the local date on the link, and the server rejects a date that is not today in the stored timezone.
Does one miss end the contract?
No. That day is forfeited. Later days are still open.