Install any skill in seconds. Free to start, no credit card required.
Get Started Free →data-goblin/refresh-semantic-model
Automatically invoke this skill whenever the user asks to refresh a semantic model or a dataset. Can also be used to manage, optimize, troubleshoot, or configure a refresh or a refresh schedule.
Passed 22 of 22 test cases with the skill, and 13 of 22 without it.
and 8 more in the full report
9 fixed13 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.8-flash on 10/20/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 9 test cases the skill fixed. Same model, same prompt, with and without the skill.
To construct our REST API calls in bash scripts, we need to extract the raw GUID for workspace 'SalesWS' and semantic model 'SalesModel'. What Fabric CLI command retrieves raw GUID strings without surrounding quotes?
| Checked | Without skill | With skill |
|---|---|---|
| Uses fab get syntax with -q id to query item metadata | Missed | Passed |
| Pipes output to tr -d '"' or equivalent to remove quotes | Passed | Passed |
The instructions your model reads when the skill loads.
Trigger, monitor, validate, and troubleshoot semantic model refreshes via the Power BI Enhanced Refresh REST API and Fabric CLI.
A semantic model refresh reloads data from upstream sources and/or recalculates dependent objects (calculated columns, calculated tables, measures). The scope can be the entire model, specific tables, or individual partitions.
Six refresh types are available via the REST API; a seventh (add) is TMSL-only:
| Type | Reloads Data | Recalculates | Primary Use Case | API |
|---|---|---|---|---|
full | Yes | Yes | Complete reload from scratch | REST |
automatic | Conditional | Conditional | Smart refresh; process only if needed | REST |
dataOnly | Yes | No* | Reload data; clear dependents | REST |
calculate | No | Yes | Recalculate without reloading data | REST |
clearValues | No | No | Empty data from objects | REST |
defragment | No | No | Clean up column dictionaries | REST |
add | Append | Yes | Append rows to a partition | TMSL |
*dataOnly clears dependent objects (calculated columns, calculated tables) but does not recalculate them. Follow with a calculate refresh to restore them.
For detailed descriptions, behavior with incremental refresh policies, commit modes, and parallelism options, consult references/refresh-types.md.
Extract the workspace and model GUIDs needed for API calls:
WS_ID=$(fab get "WorkspaceName.Workspace" -q "id" | tr -d '"')
MODEL_ID=$(fab get "WorkspaceName.Workspace/ModelName.SemanticModel" -q "id" | tr -d '"')
Before triggering the refresh, capture a baseline snapshot to later verify that data actually changed. Execute a DAX query against the model to get current row counts or max dates:
test cases passed, vs 13 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.