Is there a way to make old boarding passes go away automatically from Passbook, instead of manually deleting them?
In this article, it says:
"I'm surprised old boarding passes don't automatically delete from Passbook post departure. You have to manually delete them."
It doesn't look like it is possible yet.
You can provide feedback to Apple regarding this at the following page:
No - passbook items might even be retained on purpose since Apple allows developers to use Apple's push notification service to refresh a passbook with new information that might make them no longer expired.
It's up to each developer to decide if they keep sending you one-off passbook items or make them more of a reusable container to store the information you need when you need it.
There are clearly cases where this won't work - for boarding passes where you want to be able to perhaps load 3 to 6 of them before an overseas trip, but I would expect Apple to add a clear system if people end up commonly having dozens or more expired items and make a case for that feature to be added.
In iOS 11 (possibly earlier) it’s now much easier to delete old passes: In the Wallet, swipe all the way down and tap the “Edit Passes” button (the button only appears if you have more than one pass stored). Then you can easily see the “last updated” dates of all passes and easily delete them from the list.