Markdown Editor

Analytics and BI Solution Design Template (Dimensional Model, Semantic Layer)

Decisions, KPI catalogue, bus matrix, facts and dimensions, SCD types, semantic layer, refresh, row-level security, capacity, testing, adoption

아키텍처전체Kimball dimensional modelling concepts (structure only); DAMA-DMBOK2 Revised (2024) Data Warehousing and BIanalyticssolutiondesign

사용법: Use it when you design a BI subject area such as sales and margin on top of a data platform. Fill the consumer decisions, KPI catalogue and bus matrix first, then declare the grain of each fact table. The main pitfall is metric logic copied into each dashboard, so certified numbers disagree between reports.

미리보기

Analytics and BI Solution Design: [Solution name]

Solution design for an analytics and business intelligence (BI) solution: consumers and decisions supported, the KPI catalogue, source mapping and bus matrix, the dimensional model, the semantic layer, refresh and latency, row-level security, self-service governance, performance and capacity, report design standards, distribution, testing and reconciliation, adoption and operations. Dimensional modelling follows the concepts popularised by the Kimball Group (business process, grain, conformed dimensions, slowly changing dimensions), described here in original wording. Replace every [bracketed] value and every row marked Example. Worked examples follow a retail sales and margin solution for finance and merchandising.

Document control

FieldValue
Document ID[BI-001]
Solution name[Name]
Subject areas[Sales and margin / Inventory / Customer / Finance]
BI and semantic tooling[BI tool, semantic layer product or build]
Data platform[Platform name and document ID]
Version[0.1]
Status[Draft / In review / Approved / Superseded]
Owner[@bi-architect]
Business owner[@business-owner]
Approvers/reviewers[@data-owner], [@security-architect], [@data-platform-architect]
Last updatedYYYY-MM-DD
Classification[Internal / Confidential]

Approvals

RoleNameDecisionDate
Business owner[@name][Approve / Approve with conditions / Reject]YYYY-MM-DD
Data owner[@name][Decision]YYYY-MM-DD
Security[@name][Decision]YYYY-MM-DD
Data platform[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]First draft
1.0YYYY-MM-DD[@name]Example: Sales and margin mart approved
1.1YYYY-MM-DD[@name]Example: Added inventory periodic snapshot

Contents

1. Scope, consumers and decisions

IDConsumer groupDecision supportedFrequencyCurrent methodUsers
BIC-001 (Example)Finance controllersApprove monthly margin per countryMonthly, daily during closeSpreadsheet from ERP extracts150
BIC-002 (Example)Category managersAdjust promotions and markdownsWeeklyLegacy reports, 2-day lag300
BIC-003 (Example)Store managersRe-order and staff planningDailyPrinted store report1,800
BIC-004 (Example)Executive boardTrack company KPIs against planWeeklySlide deck15
[BIC-NNN][Group][Decision][Frequency][Current][Count]

Example named users: 150 + 300 + 1,800 + 15 = 2,265. Section 9 sizes capacity from this figure.

Out of scope: [operational reports inside source systems], [planning and forecasting write-back], [machine learning features].

2. KPI catalogue

IDKPIOwnerDefinition documentLowest grainCertifiedTarget (Example)
KPI-001 (Example)Net salesHead of financeMET-001Sales line by dayYesPlan per country
KPI-002 (Example)Gross margin %Head of financeMET-002Sales line by dayYes38 %
KPI-003 (Example)Like-for-like sales growthHead of financeMET-003Store by weekYes3 % year on year
KPI-004 (Example)Promotion upliftCategory directorMET-004Product by store by weekYesPositive for 70 % of promotions
KPI-005 (Example)Stock cover daysSupply chain directorMET-005Product by store by dayIn progress21 days
[KPI-NNN][Name][@owner][MET-NNN][Grain][Yes / No][Target]

Write additive measures (net sales, units) separately from ratios (margin %) and semi-additive measures (stock on hand, which can be summed across stores but not across days). The semantic layer must aggregate ratios from their components, never by averaging stored percentages.

3. Sources and bus matrix

3.1 Source mapping

Business processSource systemSource objectsPlatform layer usedOwner
Retail sales (Example)POS and e-commerceSales transactions, returnsSilver sales lines@retail-ops
Cost of goods (Example)ERPStandard cost, purchase priceSilver cost@erp-owner
Inventory (Example)Warehouse and store systemsStock positionsSilver stock@supply-chain
Promotions (Example)Promotion planning toolPromotion headers and linesSilver promotions@category-ops
[Process][System][Objects][Layer][@owner]

3.2 Bus matrix

Business process (fact)DateStoreProductCustomerPromotionSupplier
Retail sales (Example)XXXXX
Inventory snapshot (Example)XXXX
Purchase orders (Example)XXXX
Promotion plan (Example)XXXX
[Process][X][X][X][X][X][X]

A column with several marks is a conformed dimension: build it once, with one key and one set of attributes, and reuse it in every mart. Customer and product come from the master data hub when one exists.

4. Dimensional model

4.1 Fact tables

IDFact tableTypeGrain (one row per)MeasuresAdditivity
FCT-001 (Example)fact_sales_lineTransactionSales line on a receipt or orderUnits, gross sales, discount, net sales, costFully additive
FCT-002 (Example)fact_stock_dailyPeriodic snapshotProduct per store per dayStock on hand, stock valueSemi-additive (not over time)
FCT-003 (Example)fact_order_fulfilmentAccumulating snapshotOnline order, updated at each milestoneLag days between milestonesAdditive lags
FCT-004 (Example)fact_promotion_coverageFactlessProduct per store per promotion dayNone (row presence)Count only
[FCT-NNN][Name][Type][Grain][Measures][Additivity]

4.2 Dimensions and change handling

IDDimensionKeySourceChange handlingNotes
DIM-001 (Example)dim_dateDate key (YYYYMMDD)GeneratedStaticFiscal calendar, holidays per country
DIM-002 (Example)dim_storeSurrogate keyStore masterType 2 for region and format, Type 1 for phoneRole: selling store and fulfilling store
DIM-003 (Example)dim_productSurrogate keyProduct masterType 2 for category, Type 1 for descriptionCategory hierarchy of fixed depth
DIM-004 (Example)dim_customerSurrogate keyMDM golden recordType 2 for segment, Type 1 for contact dataPersonal attributes masked (section 7)
DIM-005 (Example)dim_promotionSurrogate keyPromotion toolType 1Includes "no promotion" row
[DIM-NNN][Name][Key][Source][Type][Notes]

Use surrogate keys for dimensions so that history (Type 2 versions) and late-arriving rows can be handled; keep the natural key as an attribute. Add an "unknown" member to every dimension so facts with a missing reference still load and are visible in quality reports.

4.3 Model diagram

The Example sales star joins one transaction fact to five dimensions.

receipt_id is a degenerate dimension: an identifier kept on the fact with no dimension table of its own.

5. Semantic layer

ElementDesign (Example)
LocationOne semantic model per subject area, defined as code in version control and deployed through CI
MetricsKPI-001 to KPI-005 implemented once; ratios built from additive components
HierarchiesDate (year, quarter, month, week, day), product (department, category, subcategory, item), store (country, region, store)
Time intelligenceYear to date, same period last year, like-for-like store flag
CurrencyFacts held in transaction and group currency; conversion at monthly average rate from finance
SecurityRow-level rules from section 7 applied in the semantic model, not in reports
ConsumersBI tool, spreadsheet connector, SQL access for analysts through the same definitions where the tool supports it
InterchangeExport of the model in an open format where available; open semantic interchange specifications are emerging, check their maturity

Version metric logic: a change to a certified KPI formula needs the KPI owner's approval, a new version of its Metric Definition and a communication to consumers before deployment.

6. Refresh and latency

FactFreshness objective (Example)MethodWindowLate source behaviour
fact_sales_lineDaily by 06:00 local; hourly intraday view for e-commerceIncremental by load date, late returns reprocessed for 35 days02:00 to 05:30Publish with banner "store X missing", reload when it arrives
fact_stock_dailyDaily by 07:00Append one snapshot per day04:00 to 06:30Carry forward previous day, flag as estimated
fact_order_fulfilmentHourlyUpsert on order keyContinuousMilestones fill when events arrive
[Fact][Objective][Method][Window][Behaviour]

Example increment: 6.5 million sales lines per day against 2.4 billion rows in the table, so an incremental load touches 6.5 / 2,400 = 0.27 % of rows plus the 35-day returns window. A full reload is avoided. Record freshness objectives in the SLO document (dev/slo-doc).

7. Security and row-level access

IDRuleApplies toEnforcementTest
SEC-001 (Example)Country managers see only their countryAll sales and stock factsRow-level rule on dim_store.country from user attributeTest user per country
SEC-002 (Example)Store managers see their store and regional averagesStore reportsRow-level rule plus pre-aggregated regional tableTest user per role
SEC-003 (Example)Customer personal attributes hidden except for the CRM teamdim_customerColumn masking policyMasked value check
SEC-004 (Example)Cost and margin hidden from store rolesCost measuresObject-level security in the semantic modelMeasure not visible
[SEC-NNN][Rule][Scope][Enforcement][Test]

Map roles to identity provider groups, not to named users, and review membership with the Access Review (ops/access-review). Exports to files inherit row rules; restrict bulk export of personal data.

8. Self-service governance

Content tierWho buildsData allowedReviewLabelRetention
Certified (Example)BI team or approved domain developersCertified semantic models onlyPeer review, data owner sign-off, tests in section 12Certified badgeReviewed every 12 months
Shared (Example)Trained power usersCertified models plus approved sourcesWorkspace ownerShared, not certifiedArchived after 180 days without views
Personal (Example)Any licensed userCertified modelsNonePersonalDeleted after 90 days without use
[Tier][Builders][Data][Review][Label][Retention]

Promote content from shared to certified through a request with the reviewer checklist from section 12. Measure the share of views that land on certified content (section 13).

9. Performance and capacity

9.1 Load estimate (Example)

StepCalculationResult
Named usersSection 12,265
Daily active users (25 %)2,265 x 0.25about 566
Peak concurrent sessions (10 % of daily active)566 x 0.10about 57
Queries per session per minuteDashboard with 8 visuals, refreshed about every 1.5 minutesabout 5
Peak queries per minute57 x 5285
Peak queries per second285 / 60about 4.75
Queries reaching the warehouse (70 % cache hit)4.75 x 0.30about 1.4 per second

Month-end close doubles finance sessions in this Example; apply a peak factor of [2] to the finance share when sizing.

Consequence: about 1.4 warehouse queries per second at peak fits one small always-on SQL cluster only if p95 query time stays under 2 seconds; otherwise queries queue. Pre-aggregate fact_sales_line to product category by store by day, which the Example top 10 dashboards use, and keep the line-level table for drill-through.

9.2 Targets

IDTarget (Example)Measured by
PRF-001Certified dashboard page loads in under 3 seconds (p90)BI tool usage logs
PRF-002Drill-through to line level under 10 seconds (p90)Synthetic test
PRF-003Semantic model refresh completes by 05:30Orchestrator logs
[PRF-NNN][Target][Method]

Plan performance tests in the Performance Test Plan (quality/performance-test-plan).

10. Report and dashboard standards

  1. Start each dashboard with the question it answers and its audience.
  2. Show at most [6 to 8] visuals per page; put detail in drill-through.
  3. Label every KPI with its definition link, freshness time and filters applied.
  4. Use consistent number formats and units; show currency codes.
  5. Do not rely on colour alone; add icons, labels or patterns. Check contrast and keyboard navigation with the Accessibility Checklist (design/accessibility-checklist).
  6. Prefer bar and line charts for comparison and trend; avoid 3D charts.
  7. Show the plan or prior period next to actuals so variance is visible.
  8. Name pages and visuals so screen readers announce them meaningfully.

11. Distribution and embedding

IDChannelAudienceContentSecurity
DIS-001 (Example)BI portalAll rolesCertified dashboardsSingle sign-on, row rules
DIS-002 (Example)Subscription by e-mail (image and link)ExecutivesWeekly KPI pageRow rules applied per recipient
DIS-003 (Example)Data alertsCategory managersPromotion uplift below zeroRecipient-level rules
DIS-004 (Example)Embedded in store appStore managersStore daily pageApplication identity with per-user rules
[DIS-NNN][Channel][Audience][Content][Security]

12. Testing and reconciliation

IDTestMethodPass criterion
TST-001 (Example)Net sales reconciles to ERP ledgerCompare daily totals per countryWithin 0.1 %
TST-002 (Example)Row counts per loadSource lines versus fact rowsEqual after known exclusions
TST-003 (Example)Unknown member rateFacts pointing to unknown dimension rowsBelow 0.5 %
TST-004 (Example)Row-level securityTest users per roleEach sees only permitted rows
TST-005 (Example)KPI regressionKnown period values before and after changeUnchanged unless the change is approved
TST-006 (Example)PerformancePRF-001 to PRF-003Targets met
[TST-NNN][Test][Method][Criterion]

Keep test cases in the Test Case Specification (quality/test-case-specification) and run them in CI for every change to the model or semantic layer.

13. Adoption and support

MeasureTarget (Example)Source
Monthly active users of certified content60 % of named users within 6 monthsUsage logs
Share of views on certified contentAbove 70 %Usage logs
Legacy reports retired100 % of mapped reports within 9 monthsReport inventory
Support tickets per 100 users per monthBelow 3 after month 3Service desk

Support model: first line through the service desk, second line through the BI team, data questions routed to the KPI owner. Name one champion per consumer group in section 1 and run monthly office hours.

14. Operations, cost, roadmap and risks

14.1 Operations and cost

ItemDesign or estimate (Example)
OwnershipBI team owns semantic models and certified content; platform team owns compute
Licences[Number] creator licences and [number] viewer licences, per the vendor's current price list
ComputeOne small SQL cluster in business hours plus refresh jobs; cost allocated in ops/finops-cost-review
MonitoringRefresh failures, freshness, slow queries; signals in ops/observability-spec
RunbooksFailed refresh, late source, KPI dispute (dev/runbook)

14.2 Roadmap

ReleaseScopeConsumersExit criterionDate
R1 (Example)Sales star, KPI-001 to KPI-003FinanceTST-001 passes for 3 closesYYYY-MM-DD
R2 (Example)Promotions and KPI-004Category managersAdoption target for the groupYYYY-MM-DD
R3 (Example)Stock snapshot, store app embeddingStore managersPRF-001 at 1,800 usersYYYY-MM-DD

14.3 Risks

IDRiskLikelihoodImpactResponseOwner
RSK-001 (Example)Finance does not accept numbers that differ from legacy reportsHighHighReconciliation pack per close, joint sign-off@bi-architect
RSK-002 (Example)Self-service sprawl erodes trustMediumMediumContent tiers and archiving (section 8)@bi-lead
RSK-003 (Example)Month-end peak exceeds capacityMediumMediumAggregates, scale-out rule, load test@data-platform-architect
[RSK-NNN][Risk][L / M / H][L / M / H][Response][@owner]

15. Glossary and references

TermMeaning
GrainThe exact meaning of one row in a fact table
FactA numeric measurement of a business process event
DimensionDescriptive context used to filter and group facts
Conformed dimensionA dimension shared with the same keys and meaning across facts
Bus matrixGrid of business processes against the dimensions they use
Slowly changing dimensionTechnique for handling changes to dimension attributes (Type 1 overwrites, Type 2 adds a new row version)
Semi-additive measureA measure that can be summed over some dimensions but not over time
Semantic layerShared, governed definitions of metrics, relationships and security queried by BI tools

References: Kimball Group, Dimensional Modeling Techniques (kimballgroup.com, technique names only, checked 2026-10-23); DAMA-DMBOK 2nd Edition Revised (DAMA International, 2024), Data Warehousing and Business Intelligence knowledge area (name only); Apache Ossie (incubating), formerly Open Semantic Interchange, github.com/open-semantic-interchange/OSI (checked 2026-10-23); [BI tool documentation, version].

Standard and licence note

Structure aligned with dimensional modelling concepts published by the Kimball Group and with the Data Warehousing and Business Intelligence knowledge area of DAMA-DMBOK 2nd Edition Revised (2024). Only concept and technique names are used; no text, diagrams or examples from those publications are reproduced, and the worked examples are original. This template is original text written for this collection. Check the current documentation of your BI and semantic layer tools before use. DAMA-DMBOK is a trademark of DAMA International and Kimball Group names belong to their owners; this template is not affiliated with or endorsed by them. Template licence: MIT.

관련 템플릿