Course outline

Tableau / Advanced: quality and governed delivery / Lesson 18

Capstone: validation and delivery evidence

Connect source quality, model grain, calculation scope, interaction state and consumer access in one concrete synthetic release review.

About 4 min readContent reviewed
On this page

Lesson goals

  • Integrate independent amounts, counts and context expectations.
  • Diagnose the first broken evidence boundary.
  • Write an honest handoff with engine and hosted checks explicit.

State the complete fixture

The capstone retains O1 Tea 12 and Coffee 18 in North on February 1 and O2 Tea 30 in South on February 2. Profit amounts are 3,9,12. Expected sales is 60, profit 24, aggregate margin 40%, Tea sales 42 and distinct orders 2. These values make the model review falsifiable and are not real business data. State line grain, currency, date role, exclusions and missing-data rules before creating a workbook. A matching 60 total alone can hide duplicated and missing records that cancel out. Keep row identities and independent subsets so each important result can be traced to actual included observations.

Build the evidence chain

Review source typing and quality, combination grain, relationships/joins, calculations, view detail, filters and actions in that order. A Tea lookup duplicate can raise sales to 102 before a worksheet calculation is involved. A changed table-calculation partition can alter a running result while source facts stay correct. The first record separates expected analytical invariants from future engine checks. Do not repair a modeling defect by formatting a total or adding an unexplained LOD expression. Diagnose the earliest broken boundary, preserve the original synthetic reproduction and check every dependent amount after the contextual correction.

text Synthetic capstone acceptance inventory
source facts:3 lines,2 order identities
absolute amounts:Sales60,Profit24
subset:Tea42;North30
ratio:24/60=40%
separate future checks:Tableau model,view filters,actions,RLS,freshness

The inventory is authored expected evidence, not a captured workbook validation or publication report.

Compute the independent oracle

The second program calculates sales, profit, margin and distinct orders using exact Decimal division. It does not run Tableau, construct an extract or evaluate a LOD expression. Compare unrestricted totals and selected subsets separately. A ratio can stay 40% when a faulty join duplicates profit and sales by the same factor, so validate numerator and denominator independently. Distinct-order counts must also follow entity identity rather than line count. The oracleโ€™s purpose is to challenge plausible-looking results, not to bless any workbook that happens to display the same rounded percentage.

python Exact synthetic delivery oracle
from decimal import Decimal
rows = [("O1", "Tea", 12, 3), ("O1", "Coffee", 18, 9), ("O2", "Tea", 30, 12)]
sales = sum(row[2] for row in rows)
profit = sum(row[3] for row in rows)
print(sales, profit)
print(f"{Decimal(profit) / Decimal(sales):.1%}")
print(len({row[0] for row in rows}))
Expected output
60 24
40.0%
2

60,24,40.0% and 2 follow the fixture. No workbook, source, account or service is accessed.

Include reader, security and freshness

A correct unrestricted total is only one release requirement. A North-only consumer should see the allowed North population rather than the unrestricted 60 oracle. A stale extract can compute correct arithmetic for the wrong business cutoff. Actions must carry the intended product/date state and clear it predictably. Accessibility requires meaningful context and observed supported reading routes, not merely a polished layout. No hosted check is performed here. Keep content permissions, row entitlements, usable-data age and actual consumer interaction as separate evidence, each with an owner and explicit acceptance result.

Deliver a reviewable release

The handoff records artifact and source identity, grain, calculations, filter stages, LOD/table-calculation settings, actions, expected values, actual local tests and all unexecuted Tableau/hosted checks. Include version/product assumptions, current entitlement references and a supported recovery path for shared-source changes. This course publishes nothing and executes only harmless local programs. A complete editorial artifact still makes the next review concrete by naming source reconciliation, engine evaluation, freshness, access and usability separately. Do not turn a saved workbook, Python match or green task into a claim that all consumers receive the correct secure analysis.

Common errors and fixes

A matching margin hides inflated sales and profit

Why it happens
Only the ratio was checked, so equal errors canceled.
How to fix it
Reconcile absolute amounts, source keys and grain independently.
Prevent it next time
Keep amount assertions beside ratio assertions.

Unrestricted 60 is expected for every secured consumer

Why it happens
Identity entitlements were omitted from expected populations.
How to fix it
Define allowed rows and totals for each intended identity case.
Prevent it next time
Version security and metric acceptance together.

Python success is called a Tableau publication test

Why it happens
Independent arithmetic was promoted into engine/service evidence.
How to fix it
State exact executed checks and leave platform checks explicit.
Prevent it next time
Attach evidence boundaries to every release conclusion.

Check your understanding

1. Why must 60 sales and 24 profit be checked even when margin is 40%?

Show worked solution

Duplicating both amounts by the same factor preserves their ratio. A plausible 40% therefore cannot prove source grain or correct totals. Compare fact identities, counts, absolute amounts and subsets before accepting the ratio. This catches errors a percentage-only review can conceal.

2. What must the final evidence record say if only local Python ran?

Show worked solution

Name the fixtures, calculations and matching outputs; explicitly list Tableau expression/model/UI, extract, hosted access and security checks as unexecuted. Include remaining owners and official assumptions. This preserves useful local work without confusing a complete course example with a verified production deployment.

Key takeaways

  • Validate amounts, entity counts, context and allowed populations independently.
  • A release handoff must distinguish local reasoning from actual Tableau behavior.

Official references