From the way #135 was set up, destinations (and their opportunity vectors) from smaller bins are re-collected and re-aggregated for every larger bin. For tabular opportunities this repeats table lookups and clones and can turn total work from ~O(N) across bins into ~O(N * #bins). If runtime becomes an issue, consider collecting opportunities once (e.g., for the largest bin / all destinations) and then producing cumulative per-bin totals via an incremental accumulation strategy rather than re-running collect_trip_opportunities for each bin.
From the way #135 was set up, destinations (and their opportunity vectors) from smaller bins are re-collected and re-aggregated for every larger bin. For tabular opportunities this repeats table lookups and clones and can turn total work from ~O(N) across bins into ~O(N * #bins). If runtime becomes an issue, consider collecting opportunities once (e.g., for the largest bin / all destinations) and then producing cumulative per-bin totals via an incremental accumulation strategy rather than re-running collect_trip_opportunities for each bin.