Credit usage
This page explains how Dagster+ counts credits for common operations, including the difference between metadata updates and materializations.
What consumes credits
| Operation | Credit cost |
|---|---|
| An asset materialization (per partition) | 1 credit |
| An observable source asset execution | 1 credit |
Adding a dynamic partition via context.instance.add_dynamic_partitions() | 0 credits (metadata only) |
| Asset observations | 0 credits |
Dynamic partitions and observable source assets
Adding new partitions through context.instance.add_dynamic_partitions() is a metadata update. It does not consume credits regardless of how many partitions are added. The materializations of downstream assets that fill in those new partitions are what generate credit usage.
For example, suppose you use an observable source asset to detect new files (e.g., from Snowpipe) and add them as dynamic partitions. If the observable source asset discovers 500 new files:
- The discovery run costs 1 credit (the observable source asset execution itself).
- Adding the 500 partitions costs 0 credits.
- Materializing a downstream asset across all 500 new partitions costs 500 credits (1 per partition).
- Each additional downstream asset that processes those partitions incurs its own per-partition credit cost.
Reporting events from external systems
If you only need to record metadata about work that happened outside Dagster, report it as an asset observation rather than a materialization. Observations don't count against credit usage.