Tableau / Basic: fields, models and views / Lesson 1
Workbooks, worksheets and analytical contracts
Separate data connections, worksheets, dashboards and publication while defining the question a Tableau view must answer.
On this page
Lesson goals
- Distinguish authoring artifacts from hosted consumption.
- Define fact grain, metric scope and independent expected results.
- State product and execution assumptions explicitly.
Name the artifact and owner
A Tableau workbook organizes analytical content. A worksheet defines a view from fields, calculations and marks; a dashboard arranges sheets and supporting objects into a reader experience. A data source supplies the model and connection context. Publishing to Tableau Server or Tableau Cloud introduces hosted permissions, refresh and ownership concerns distinct from local authoring. Name the artifact before diagnosing it: a correct dashboard layout cannot repair duplicated facts, and a saved workbook does not prove that a hosted extract is current. The course teaches selected Desktop and web-authoring concepts without opening either interface.
Define the sales-line fixture
Use three synthetic cafe sales lines: order O1 has Tea 12 and Coffee 18 in North on February 1; order O2 has Tea 30 in South on February 2. Sales is the validated line amount, not a unit price. The total is 60, Tea contributes 42 and there are two distinct orders across three lines. The first record states grain and exclusions before any visual. A real specification must also define currency, returns, tax and time interpretation. Counting rows as orders or adding a repeated order total would answer a different question even if Tableau renders an attractive chart.
grain: one synthetic order line
Sales amounts:12,18,30
expected total:60; Tea subset:42
row count:3; distinct orders:2
exclusions: tax, returns and exchange rates
The record is a teaching definition, not a connected data source or a business result captured from Tableau.
Establish an independent oracle
The second program calculates the total, Tea subset and distinct-order count using public in-memory rows. It does not run Tableau calculations or reproduce the visualization engine. Such an oracle makes a later worksheet falsifiable: a product selection that should produce 42 can be compared with included line identities instead of judged by its color or shape. Preserve the exact source fixture and metric definition so expected results do not drift with the report being tested. A matching unrestricted total alone will not establish every category, date or security-restricted result.
rows = [("O1", "Tea", 12), ("O1", "Coffee", 18), ("O2", "Tea", 30)]
print(sum(amount for _, _, amount in rows))
print(sum(amount for _, product, amount in rows if product == "Tea"))
print(len({order for order, _, _ in rows}))
60
42
2
60,42 and 2 follow the stated rows only. No workbook, extract, account or server is accessed.
Separate product and access boundaries
Desktop, Tableau Cloud, Tableau Server, Tableau Public and Tableau Prep have different purposes and capability boundaries. Public publishing is not equivalent to governed organizational distribution, so the course never publishes teaching content or real data. Web-authoring availability, licensing and permissions depend on the actual environment and entitlement. Do not infer current prices or support status from a familiar product name. This course uses current official help as reviewed material and labels feature assumptions; no paid plan, account, server or cloud site is created or inspected.
Keep validation claims bounded
Every Tableau expression, GUI plan and connection diagram is an unexecuted runnable:false illustration. Only complete standard-library Python programs run in isolated temporary storage with synthetic inputs. A correct Python result does not establish Tableau aggregation, relationships, filters, refresh or access enforcement. Review those as separate claims in a future authorized environment. The default learning context is a small tabular sales source and selected Desktop-style authoring concepts; connector behavior, web features and deployment policy remain version-specific. A complete learning artifact names these limits instead of inventing a successful workbook or publication test.
Common errors and fixes
A dashboard is treated as the source model
- Why it happens
- Presentation and data-shape responsibilities were conflated.
- How to fix it
- Inspect source grain and calculations separately from dashboard arrangement.
- Prevent it next time
- Name artifacts and owners in each review.
Three sales lines are labeled as three orders
- Why it happens
- Row grain was not distinguished from order identity.
- How to fix it
- Use the documented distinct-order contract.
- Prevent it next time
- Keep row and entity counts in the expected-result fixture.
Local save is reported as hosted freshness proof
- Why it happens
- Authoring and service processing were treated as one event.
- How to fix it
- Review publication, extract processing and usable-data cutoff independently.
- Prevent it next time
- Attach an evidence boundary to every completion claim.
Check your understanding
1. Why are three rows compatible with only two orders?
Show worked solution
Each row is an order line, and O1 appears twice for two products. Distinct order identity is therefore 2 while row count is 3. Choose the count that matches the business question. Changing a chart label cannot turn a line-count measure into an order-count measure.
2. The Python total is 60. What remains unverified in Tableau?
Show worked solution
Actual source rows, relationships, calculation evaluation, view detail, filters, refresh and consumer access remain untested. The oracle supplies an expected answer only. Use it to design specific worksheet and hosted acceptance cases, then record actual execution separately from this local arithmetic.
Key takeaways
- Artifact, grain and metric meaning precede chart design.
- Local arithmetic and actual Tableau behavior require different evidence.