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.
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.
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.
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}))
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.