{"id":"2bbec4ab-d8fc-4604-ba5d-473896ef0581","shortId":"MVXJn2","kind":"skill","title":"Powerbi Modeling","tagline":"Awesome Copilot skill by Github","description":"# Power BI Semantic Modeling\n\nGuide users in building optimized, well-documented Power BI semantic models following Microsoft best practices.\n\n## When to Use This Skill\n\nUse this skill when users ask about:\n- Creating or optimizing Power BI semantic models\n- Designing star schemas (dimension/fact tables)\n- Writing DAX measures or calculated columns\n- Configuring table relationships (cardinality, cross-filter)\n- Implementing row-level security (RLS)\n- Naming conventions for tables, columns, measures\n- Adding descriptions and documentation to models\n- Performance tuning and optimization\n- Calculation groups and field parameters\n- Model validation and best practice checks\n\n**Trigger phrases:** \"create a measure\", \"add relationship\", \"star schema\", \"optimize model\", \"DAX formula\", \"RLS\", \"naming convention\", \"model documentation\", \"cardinality\", \"cross-filter\"\n\n## Prerequisites\n\n### Required Tools\n- **Power BI Modeling MCP Server**: Required for connecting to and modifying semantic models\n  - Enables: connection_operations, table_operations, measure_operations, relationship_operations, etc.\n  - Must be configured and running to interact with models\n\n### Optional Dependencies\n- **Microsoft Learn MCP Server**: Recommended for researching latest best practices\n  - Enables: microsoft_docs_search, microsoft_docs_fetch\n  - Use for complex scenarios, new features, and official documentation\n\n## Workflow\n\n### 1. Connect and Analyze First\n\nBefore providing any modeling guidance, always examine the current model state:\n\n```\n1. List connections: connection_operations(operation: \"ListConnections\")\n2. If no connection, check for local instances: connection_operations(operation: \"ListLocalInstances\")\n3. Connect to the model (Desktop or Fabric)\n4. Get model overview: model_operations(operation: \"Get\")\n5. List tables: table_operations(operation: \"List\")\n6. List relationships: relationship_operations(operation: \"List\")\n7. List measures: measure_operations(operation: \"List\")\n```\n\n### 2. Evaluate Model Health\n\nAfter connecting, assess the model against best practices:\n\n- **Star Schema**: Are tables properly classified as dimension or fact?\n- **Relationships**: Correct cardinality? Minimal bidirectional filters?\n- **Naming**: Human-readable, consistent naming conventions?\n- **Documentation**: Do tables, columns, measures have descriptions?\n- **Measures**: Explicit measures for key calculations?\n- **Hidden Fields**: Are technical columns hidden from report view?\n\n### 3. Provide Targeted Guidance\n\nBased on analysis, guide improvements using references:\n- Star schema design: See [STAR-SCHEMA.md](references/STAR-SCHEMA.md)\n- Relationship configuration: See [RELATIONSHIPS.md](references/RELATIONSHIPS.md)\n- DAX measures and naming: See [MEASURES-DAX.md](references/MEASURES-DAX.md)\n- Performance optimization: See [PERFORMANCE.md](references/PERFORMANCE.md)\n- Row-level security: See [RLS.md](references/RLS.md)\n\n## Quick Reference: Model Quality Checklist\n\n| Area | Best Practice |\n|------|--------------|\n| Tables | Clear dimension vs fact classification |\n| Naming | Human-readable: `Customer Name` not `CUST_NM` |\n| Descriptions | All tables, columns, measures documented |\n| Measures | Explicit DAX measures for business metrics |\n| Relationships | One-to-many from dimension to fact |\n| Cross-filter | Single direction unless specifically needed |\n| Hidden fields | Hide technical keys, IDs from report view |\n| Date table | Dedicated marked date table |\n\n## MCP Tools Reference\n\nUse these Power BI Modeling MCP operations:\n\n| Operation Category | Key Operations |\n|-------------------|----------------|\n| `connection_operations` | Connect, ListConnections, ListLocalInstances, ConnectFabric |\n| `model_operations` | Get, GetStats, ExportTMDL |\n| `table_operations` | List, Get, Create, Update, GetSchema |\n| `column_operations` | List, Get, Create, Update (descriptions, hidden, format) |\n| `measure_operations` | List, Get, Create, Update, Move |\n| `relationship_operations` | List, Get, Create, Update, Activate, Deactivate |\n| `dax_query_operations` | Execute, Validate |\n| `calculation_group_operations` | List, Create, Update |\n| `security_role_operations` | List, Create, Update, GetEffectivePermissions |\n\n## Common Tasks\n\n### Add Measure with Description\n```\nmeasure_operations(\n  operation: \"Create\",\n  definitions: [{\n    name: \"Total Sales\",\n    tableName: \"Sales\",\n    expression: \"SUM(Sales[Amount])\",\n    formatString: \"$#,##0\",\n    description: \"Sum of all sales amounts\"\n  }]\n)\n```\n\n### Update Column Description\n```\ncolumn_operations(\n  operation: \"Update\",\n  definitions: [{\n    tableName: \"Customer\",\n    name: \"CustomerKey\",\n    description: \"Unique identifier for customer dimension\",\n    isHidden: true\n  }]\n)\n```\n\n### Create Relationship\n```\nrelationship_operations(\n  operation: \"Create\",\n  definitions: [{\n    fromTable: \"Sales\",\n    fromColumn: \"CustomerKey\",\n    toTable: \"Customer\",\n    toColumn: \"CustomerKey\",\n    crossFilteringBehavior: \"OneDirection\"\n  }]\n)\n```\n\n## When to Use Microsoft Learn MCP\n\nResearch current best practices using `microsoft_docs_search` for:\n- Latest DAX function documentation\n- New Power BI features and capabilities\n- Complex modeling scenarios (SCD Type 2, many-to-many)\n- Performance optimization techniques\n- Security implementation patterns","tags":["powerbi","modeling","awesome","copilot","github"],"capabilities":["skill","source-github","category-awesome-copilot"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/powerbi-modeling","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under github/awesome-copilot","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T16:40:17.576Z","embedding":null,"createdAt":"2026-04-18T20:25:43.807Z","updatedAt":"2026-04-22T16:40:17.576Z","lastSeenAt":"2026-04-22T16:40:17.576Z","tsv":"'0':517 '1':184,200 '2':207,256,591 '3':219,313 '4':227 '5':235 '6':242 '7':249 'activ':476 'ad':77 'add':103,498 'alway':194 'amount':515,523 'analysi':319 'analyz':187 'area':359 'ask':38 'assess':262 'awesom':3 'base':317 'best':26,95,165,266,360,569 'bi':9,21,44,124,428,582 'bidirect':282 'build':15 'busi':388 'calcul':56,87,303,483 'capabl':585 'cardin':61,116,280 'categori':433 'category-awesome-copilot' 'check':97,211 'checklist':358 'classif':367 'classifi':273 'clear':363 'column':57,75,294,308,380,454,525,527 'common':496 'complex':176,586 'configur':58,148,331 'connect':130,137,185,202,203,210,215,220,261,436,438 'connectfabr':441 'consist':288 'convent':72,113,290 'copilot':4 'correct':279 'creat':40,100,451,458,467,474,487,493,505,544,549 'cross':63,118,400 'cross-filt':62,117,399 'crossfilteringbehavior':559 'current':197,568 'cust':375 'custom':372,533,540,556 'customerkey':535,554,558 'date':416,420 'dax':53,109,335,385,478,577 'deactiv':477 'dedic':418 'definit':506,531,550 'depend':156 'descript':78,297,377,460,501,518,526,536 'design':47,326 'desktop':224 'dimens':275,364,396,541 'dimension/fact':50 'direct':403 'doc':169,172,573 'document':19,80,115,182,291,382,579 'enabl':136,167 'etc':145 'evalu':257 'examin':195 'execut':481 'explicit':299,384 'exporttmdl':446 'express':512 'fabric':226 'fact':277,366,398 'featur':179,583 'fetch':173 'field':90,305,408 'filter':64,119,283,401 'first':188 'follow':24 'format':462 'formatstr':516 'formula':110 'fromcolumn':553 'fromtabl':551 'function':578 'get':228,234,444,450,457,466,473 'geteffectivepermiss':495 'getschema':453 'getstat':445 'github':7 'group':88,484 'guid':12,320 'guidanc':193,316 'health':259 'hidden':304,309,407,461 'hide':409 'human':286,370 'human-read':285,369 'id':412 'identifi':538 'implement':65,600 'improv':321 'instanc':214 'interact':152 'ishidden':542 'key':302,411,434 'latest':164,576 'learn':158,565 'level':68,349 'list':201,236,241,243,248,250,255,449,456,465,472,486,492 'listconnect':206,439 'listlocalinst':218,440 'local':213 'mani':394,593,595 'many-to-mani':592 'mark':419 'mcp':126,159,422,430,566 'measur':54,76,102,141,251,252,295,298,300,336,381,383,386,463,499,502 'measures-dax.md':340 'metric':389 'microsoft':25,157,168,171,564,572 'minim':281 'model':2,11,23,46,82,92,108,114,125,135,154,192,198,223,229,231,258,264,356,429,442,587 'modifi':133 'move':469 'must':146 'name':71,112,284,289,338,368,373,507,534 'need':406 'new':178,580 'nm':376 'offici':181 'one':392 'one-to-mani':391 'onedirect':560 'oper':138,140,142,144,204,205,216,217,232,233,239,240,246,247,253,254,431,432,435,437,443,448,455,464,471,480,485,491,503,504,528,529,547,548 'optim':16,42,86,107,343,597 'option':155 'overview':230 'paramet':91 'pattern':601 'perform':83,342,596 'performance.md':345 'phrase':99 'power':8,20,43,123,427,581 'powerbi':1 'practic':27,96,166,267,361,570 'prerequisit':120 'proper':272 'provid':190,314 'qualiti':357 'queri':479 'quick':354 'readabl':287,371 'recommend':161 'refer':323,355,424 'references/measures-dax.md':341 'references/performance.md':346 'references/relationships.md':334 'references/rls.md':353 'references/star-schema.md':329 'relationship':60,104,143,244,245,278,330,390,470,545,546 'relationships.md':333 'report':311,414 'requir':121,128 'research':163,567 'rls':70,111 'rls.md':352 'role':490 'row':67,348 'row-level':66,347 'run':150 'sale':509,511,514,522,552 'scd':589 'scenario':177,588 'schema':49,106,269,325 'search':170,574 'secur':69,350,489,599 'see':327,332,339,344,351 'semant':10,22,45,134 'server':127,160 'singl':402 'skill':5,32,35 'source-github' 'specif':405 'star':48,105,268,324 'star-schema.md':328 'state':199 'sum':513,519 'tabl':51,59,74,139,237,238,271,293,362,379,417,421,447 'tablenam':510,532 'target':315 'task':497 'technic':307,410 'techniqu':598 'tocolumn':557 'tool':122,423 'totabl':555 'total':508 'trigger':98 'true':543 'tune':84 'type':590 'uniqu':537 'unless':404 'updat':452,459,468,475,488,494,524,530 'use':30,33,174,322,425,563,571 'user':13,37 'valid':93,482 'view':312,415 'vs':365 'well':18 'well-docu':17 'workflow':183 'write':52","prices":[{"id":"fa894716-c6d8-4bdf-9931-433586f758c8","listingId":"2bbec4ab-d8fc-4604-ba5d-473896ef0581","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:25:43.807Z"}],"sources":[{"listingId":"2bbec4ab-d8fc-4604-ba5d-473896ef0581","source":"github","sourceId":"github/awesome-copilot/powerbi-modeling","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/powerbi-modeling","isPrimary":false,"firstSeenAt":"2026-04-18T21:50:39.221Z","lastSeenAt":"2026-04-22T12:52:20.462Z"},{"listingId":"2bbec4ab-d8fc-4604-ba5d-473896ef0581","source":"skills_sh","sourceId":"github/awesome-copilot/powerbi-modeling","sourceUrl":"https://skills.sh/github/awesome-copilot/powerbi-modeling","isPrimary":true,"firstSeenAt":"2026-04-18T20:25:43.807Z","lastSeenAt":"2026-04-22T16:40:17.576Z"}],"details":{"listingId":"2bbec4ab-d8fc-4604-ba5d-473896ef0581","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"powerbi-modeling","source":"skills_sh","category":"awesome-copilot","skills_sh_url":"https://skills.sh/github/awesome-copilot/powerbi-modeling"},"updatedAt":"2026-04-22T16:40:17.576Z"}}