Hi
@Tom B! This is a great question, and in fact this pattern was one of the initial patterns that inspired Prefect’s caching features. What you could do is configure your first task (the monthly task) to cache for a 1 month time period, while your second task (the daily task) has no caching whatsoever. If you then run your flow on a daily schedule, the first task will only truly rerun once a month (and return the cached output otherwise) while the downstream will rerun each time.
For more info check out this concept doc:
https://docs.prefect.io/core/concepts/persistence.html#output-caching
(Also note that we are improving our caching API in the next few weeks)