I have found success with having a session with the PM where the goal is not to have complete, perfect cards, but at least one ticket for every thing you can think you will need to do on the project.
So you’ll have a bunch of one liner cards, but at smaller fidelity, like
- Make a bulk create API endpoint - Migrate data from old to new table
Then, if there are 5 or more cards there, make your estimate
((number_of_cards / number_of_devs) * est_business_days_per_card) + est_pto_days
It will not be accurate - but it will leave the PM and their boss feeling like the estimate was thought out and reasonable at the time, and any necessary delays will go over easier (“we estimated assuming every card was about the same number of days, but these two cards were large outliers that took longer than expected.”)
Much like the normal sprint process, but without the need to keep a track of sprint velocity beyond a gut feel.