# Execute models a max of N times per day

**URL:** <https://discourse.getdbt.com/t/execute-models-a-max-of-n-times-per-day/7325>\
**Category:** Help\
**Tags:** best-practice, dbt-cloud\
**Created:** [March 15, 2023, 7:29pm UTC](https://discourse.getdbt.com/t/execute-models-a-max-of-n-times-per-day/7325 "2023-03-15T19:29:08Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sheridan](https://avatars.discourse-cdn.com/v4/letter/s/b782af/32.png) [@Sheridan](https://discourse.getdbt.com/u/Sheridan)\
**Post date:** [March 15, 2023, 7:29pm UTC](https://discourse.getdbt.com/t/execute-models-a-max-of-n-times-per-day/7325/1 "2023-03-15T19:29:08Z")

</div>

Hello, my dbt project is starting get large and models are getting used in multiple data flows. It’s great to re-use existing models but scheduling jobs efficiently is becoming a challenge. Currently, we have jobs to build “core” models like this: dbt run --select +mart\_1+.

The problem is that a dependency for mart\_1 can also be a dependency for mart\_2. Mart\_1 and mart\_2 only really have 1 common table. If we schedule mart\_2 as dbt run --select +mart\_2+ then both lineage paths get run entirely. I really only want to run each model distinctly once, but in order of their dependencies.

My thought was to indicate to dbt that I want to only run models N times per day (once in this case). If a job triggers that model to run a second time, skip it and move to the next model. Is there a mechanism to do this or a more elegant way to solve the problem?

I could put the only dependency in as a source but that feels like it could create circular logic as time passes and the project gets more and more nested.
