From pigment
Provides the mental model and architecture decisions for designing Pigment applications: dimensions, metrics, transaction lists, tables, calendars, and folders.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pigment:modeling-pigment-applicationsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Core concepts and architecture for designing Pigment applications. Read first for any modeling task. Jump to the linked deep dives only when the task requires the detail.
Core concepts and architecture for designing Pigment applications. Read first for any modeling task. Jump to the linked deep dives only when the task requires the detail.
Read this skill before:
Pigment is an in-memory, sparse, multidimensional engine. An Application is a graph of typed blocks plus orthogonal cycle layers. Block types:
Plus two orthogonal layers that apply across blocks:
Invariants the agent must respect:
BY.skill:planning-cycles-pigment-applications.| Concept | What it is | When to pick it |
|---|---|---|
| Dimension list | Analysis axis with unique items and properties. Usable as a structural axis. | Country, Product, Employee, Account, anything you will slice metrics by |
| Property | Column on a dimension. Type Number / Date / Text / Boolean / Dimension. | Static attribute of an item |
| Metric | Multidimensional, sparse, typed grid. Sourced by input, import, or formula. | Anything you compute, plan, or report |
| Transaction List | High-volume row store (orders, journal entries). Items not unique. Not structural. | Granular facts to aggregate into metrics |
| Table | Group of metrics sharing dimensions, with calculated rows or columns. | P&L, Balance Sheet, Cash Flow, multi-metric reporting |
| Calendar | App-level time dimensions (Month, Quarter, Year) plus Date type. | Always reuse. Never re-create time dimensions |
| Version Dimension | Custom Dimension holding Budget / Actual / Forecast plus switchover and gating Boolean metrics. | Any planning cycle, Actual vs Plan layering, cross-version variance |
| List Subset | Constrained view of a parent list. Power tool with irreversible data loss on membership change. | Prefer filters or a separate list unless the subset use case is clear |
| Concept | What it is | When to pick it |
|---|---|---|
| View | Configured visual of a Metric or Table (filters, sort, breakdown, display mode). Reusable across Boards. | Whenever you want to show data the same way in multiple places |
| View display mode | How a View renders its data: Grid (pivot table), Chart (bar / line / pie / etc.), KPI (single big number). | Grid for tabular breakdown, Chart for trend or comparison, KPI for a headline metric |
| Board | Container page that lays out one or more Widgets. The unit of user-facing reporting, dashboards, and input screens. | Any user-facing dashboard, report, or input form |
| Widget | An element placed on a Board. Most commonly renders a View; also supports text, image, button, separator. | Anything embedded on a Board |
BY.Decide in this order. Reversing causes rework.
skill:planning-cycles-pigment-applications.BY.INPUT_ then CALC_ then OUTPUT_ or RES_. Reporting metrics stay thin. No cross-cutting calc inside them.Concrete shape of a well-formed micro-app. Generalize from this pattern.
Folders:
01. Dimensions
02. Library
03. Data Loads
04. Reporting
Dimensions:
Country items: FR, US, UK property: Region [Dim]
Product items: P1, P2 property: Category [Dim]
Calendar Month, Quarter, Year (existing)
Version items: Budget FY26, Reforecast Q2 FY26, ... (Actual is optional)
properties: Start_Month, End_Month, Switchover_Month,
Active_Version [Bool], Lock_Version [Bool],
Version_Type [Dim] (MP02-safe Actual ref)
Boolean metrics: Is_Version, Is_Actual, Is_Plan (layer Actual vs Plan)
Transaction List:
LOAD_Sales props: Country [Dim], Product [Dim], Date, Amount [Number]
Metrics:
DATA_Sales_Amount [Country x Product x Month x Version]
LOAD_Sales.Amount [BY SUM: LOAD_Sales.Country, LOAD_Sales.Product,
TIMEDIM(LOAD_Sales.Date, Month)]
INPUT_Budget [Country x Product x Month x Version] user input, scoped via Version_Type = "Budget" (MP02-safe)
CALC_Variance [Country x Product x Month x Version] DATA_Sales_Amount - INPUT_Budget
OUTPUT_Net_Revenue [Country x Product x Month x Version] thin reporting metric
Table:
P&L (rows = OUTPUT_ metrics, dims = Country x Month x Version)
BY.. or : in names. They break formula references.skill:planning-cycles-pigment-applications whenever a planning cycle is in scope.skill:formatting-and-highlighting first. When creating a metric that you intend to use to display data in Boards, consider applying formatting and highlighting.Open only when the task requires the detail.
| Need | Doc |
|---|---|
| Engine, sparsity, dimension list vs transaction list, BY pattern, IFDEFINED vs ISBLANK | ./modeling_fundamentals.md |
| Hierarchies, ragged hierarchies, mapped dimensions, time-dependent hierarchy, dimension explosion | ./modeling_dimensions_and_hierarchies.md |
| Calendars, fiscal year, date range, time dimension mechanics | ./modeling_time_and_calendars.md |
| End-to-end architecture design (5 pillars, Hub pattern, UX, data flow, governance) | ./modeling_architecture_design.md |
| Naming conventions (prefixes, sufixes, casing, character rules) | ./modeling_naming_conventions.md |
| Default formatting for metrics (number / text / boolean display, inference from name and type) | skill:formatting-and-highlighting |
| Modeling principles, T&D safety, data loading strategy | ./modeling_principles.md |
| Folder placement decisions | ./modeling_working_with_folders.md |
| List Subsets: safe patterns and data-loss risks | ./modeling_subsets.md |
| Design-time performance (1G cells, masks, table consolidation) | ./modeling_performance_considerations.md |
| Centralized Reporting Metric (P&L, Balance Sheet aggregation) | ../solving-specific-use-cases/finance_nexus_financial_statements.md |
| FX / currency conversion (Hub pattern, AVG vs END, entity mapping) | ../solving-specific-use-cases/fx_currency_conversion.md |
| Modifier syntax (BY, ADD, REMOVE, SELECT, FILTER) | ../writing-pigment-formulas/formula_modifiers.md |
npx claudepluginhub gopigment/ai-plugins --plugin pigmentGuides writing, editing, and debugging Pigment formulas including conditional logic, aggregation, time-series calculations, and dimensional transformations. Covers syntax, functions, modifiers, and performance trade-offs.
Guides creation of Analytic Models in SAP Datasphere for SAP Analytics Cloud, defining reporting dimensions, measures (calculated, restricted, count distinct), currency/unit conversions, exception aggregations for dashboards, KPIs, and self-service BI.
Build, validate, and manage semantic models using Sidemantic. Creates semantic layers mapping database tables to business dimensions/metrics, generates SQL, and imports from Cube/dbt/LookML.