From source to report

An illustrative quarterly report. Compare the finished numbers with the source rows behind them.

Explore the report

Period
View

Showing Q3 FY25 report view.

Department expense review

Q3 FY25 · Report view

Interactive synthetic department expense report
DepartmentActualBudgetVariance
Corporate$335,000$312,000+$23,000
Operations$219,500$218,000+$1,500
Research$158,000$150,000+$8,000
Total$712,500$680,000+$32,500

Correction in this quarter: Operations includes -$4,500 to reverse a duplicate shared-services charge before the report is refreshed.

Follow a correction

How a correction reaches the report

Wdata stores the rows, a parameterized query selects the period, a connection refreshes the spreadsheet input, and cell links carry the result into a document. Each action changes a different layer.

Q3 FY25 · Operations

Source ready

Source readySource correctedConnection refreshedLinks pendingLinks published

Wdata query

Select the period and aggregate its rows.

parameterized
SELECT department,
  SUM(actual) AS actual,
  SUM(budget) AS budget
FROM wdata.expense_ledger
WHERE period = :period
GROUP BY department
Parameter
:period = Q3 FY25
Result row
Operations · actual $224,000
Correction note
Reverse a duplicate shared-services charge before the report is refreshed.

Spreadsheet

The refresh updates the input sheet; calculations stay on their own sheet.

two sheets
Inputsconnected cells
Actual
$224,000
Budget
$218,000

Refresh replaces unlocked input rows with the latest query result.

Calculationsformula cells
Report actual
$224,000
Variance
+$6,000
=input_actual - budget

Make corrections in the source, where the next refresh picks them up.

Linked document

The published table and narrative share a source.

subsequent change
Document link state for Operations actual
DestinationPublishedPending
Operations actual$224,000—
Linked narrative
Operations actual is $224,000 for Q3 FY25.

Connection refresh and link publication are separate actions.

Inside the data model

The data model behind the report

Wdata holds the source rows, spreadsheet calculations turn them into figures, and links carry those figures into the report.

Ledger

Wdata fact table

Department IDPeriodAmount
OPSQ3 FY25224,000
OPSQ3 FY25−4,500
CORPQ3 FY25335,000
Selected rows · correction retained as activity

Department mapping

Wdata dimension table

Department IDReport label
OPSOperations
CORPCorporate
A stable key gives the data its reporting label.
Join on
department_id

Reporting query

The query filters to the period, joins the department mapping, and totals the activity.

SELECT d.report_label,
       SUM(l.amount) AS actual
FROM ledger l
LEFT JOIN departments d
  ON l.department_id = d.id
WHERE l.period = :period
GROUP BY d.report_label
Period parameter
Q3 FY25
Operations actual
$219,500

Check unmapped keys and source totals before the result feeds a report.

Connected input

Query results refresh into a spreadsheet sheet. Connected cells stay protected; they are not the place for a manual correction.

Spreadsheet calculation

Separate sheets calculate variances and reporting totals. Numeric formulas stay numeric; native formatting controls their presentation.

Linked document

Source cells feed the document tables and narrative. After review, publishing the links updates the document, so nothing is copied by hand.

Automating the routine steps

Chains can orchestrate imports, query runs, and connection refreshes through configured connectors. Permissions, parameters, exception handling, and review points still need deliberate design.

View related services