WSU Glossary Pivot · Author reference
Properties and calculation syntax
Use this guide when building a Glossary Pivot workbook. Find the property, copy its syntax, and check that the calculation uses the population you intend.
1. Where to enter settings
- Open the workbook in Edit mode and select the WSU Glossary Pivot.
- Use Grammar to place fields in Rows, Columns, and Values. Put any helper measures in Values too.
- Open Properties → General. Scroll below the standard Oracle properties to find the extension controls, starting with Format:.
- Enter an example in the property named above it. Leave the field or press Tab to apply it. Compare the result before saving.
There are two places to calculate. Create a workbook calculation in Oracle’s calculation editor to produce a measure for every data cell. Use Totals: Measure Rules to tell the extension how to summarize measures already in its query. A total rule does not create a calculated field or change the source measure.
The standard Oracle pivot has its own Display as: Percent Of control. Glossary Pivot does not inherit that setting. Its Values: Show as % of Total property is a separate calculation.
2. Syntax at a glance
| Property | Pattern | Example |
|---|---|---|
| Format: Per-Measure Override | NAME:format:decimals | Headcount:number:0; Rate:percent:1 |
| Values: Show as % of Total | NAME or NAME: by ROW_FIELD | Headcount Share: by College |
| Header: Display Label | NAME:label | Plan Owner Academic Group Desc:College |
| Header: Hidden Columns | NAME; NAME | Weight; Reporting Sequence |
| Totals: Measure Rules | NAME = rule | Rate = ratio(Selected Count, Headcount) |
| Layout: Column Widths | NAME:pixel_width | College:260; Headcount:100 |
| Style: Data Bars | NAME: #hex[: 100%] | Rate: #981e32: 100% |
- Use a semicolon between entries. A trailing semicolon is allowed.
- Use the measure or field’s original name or stable ID. Matching ignores case. Changing a displayed label does not rename the measure for calculations.
- Spaces in a name are allowed. In extension properties, enter
Unique Headcountwithout surrounding quotes. Oracle calculation formulas use their own quoted field references. - Referenced measures must be in Values. Hide helper measures with Header: Hidden Columns; removing them from Values removes them from the query.
- These text boxes are small configuration languages. Do not enter Excel formulas, JavaScript, or arbitrary SQL in them. Names containing the syntax delimiters need special care; no general quoting/escaping syntax is provided.
3. Properties page reference
The labels below follow the current General panel. Defaults describe a new visualization; a saved workbook can retain different settings.
| Property | What it controls | Default / choices |
|---|---|---|
| Format: Number Format | Format for measures without an override. | Auto; Number; Percent (×100); Currency (USD); Compact (K/M/B). |
| Format: Decimal Places | Decimals for extension-formatted numbers. | Auto, or 0–4. |
| Format: Per-Measure Override | Set a separate format and decimal count for each named measure. | Blank. NAME:format:decimals; ... |
| Values: Show as % of Total | Convert named measures to shares of the sums of queried cells. | Blank. NAME[: by ROW_FIELD]; ... |
| Header: Display Label | Change a field title; optionally use parameter text. Member values stay unchanged. | Blank. NAME:label; ... |
| Header: Hidden Columns | Hide a field or measure while retaining it in the query. Hiding a grouping field does not remove its grouping. | Blank. NAME; NAME; ... |
| Header: Hide Measure Row (one measure) | Drop the header row that repeats the measure name under every column, like the standard pivot. Applies only when exactly one measure is visible and another column header row remains. The measure’s description moves to the remaining column headers, such as 2013 Fall, which still sort. | Off. Since 0.20.7. |
| Rows: Group Collapse (2+ Row layers) | Collapse an outer row group into a summary using its total rules. | Off. Needs at least two Rows fields. |
| Totals: Grand Total Row | Show a total below the table for each measure/column combination. | Off. |
| Totals: Row Subtotals (2+ Row layers) | Show a subtotal below each outer row group. | Off. Needs at least two Rows fields. |
| Totals: Grand Total Column | Show totals across the column members, separately for each measure. | Off. Requires a Columns layer. |
| Totals: Measure Rules | Choose how each measure totals. Used for total rows, subtotal rows, collapsed groups, and total columns. | Blank. Unlisted measures normally sum. |
| Property | What it controls | Default / choices |
|---|---|---|
| Layout: Row Header Align | Horizontal alignment of row labels and corner titles. | Left; Center; Right. |
| Layout: Row Header Vertical | Vertical alignment of row headers. | Middle; Top; Bottom. |
| Layout: Column Header Align | Horizontal alignment of column headers. | Center; Left; Right. |
| Layout: Column Header Vertical | Vertical alignment of column headers. | Middle; Top; Bottom. |
| Layout: Value Align | Horizontal alignment of values and totals. | Right; Left; Center. |
| Layout: Value Vertical | Vertical alignment of values and totals. | Middle; Top; Bottom. |
| Layout: Wrap Text | Wrap at spaces while keeping words intact. | Off; Headers; Rows and values; All. |
| Layout: Value Column Width | Width in pixels for value columns without a named override. | Blank = automatic. Accepts 20–4000. |
| Layout: Column Widths | Named widths for measures or Rows fields; overrides the general value width. | Blank. NAME: px; ... |
| Layout: Table Width | How the table occupies its visualization tile. | Fill tile; Fit content; Fixed (px below). |
| Layout: Fixed Table Width | Width used when Table Width is Fixed. | Blank. Accepts 20–4000 pixels; invalid/blank falls back to Fill tile. |
| Property | What it controls | Default / choices |
|---|---|---|
| Style: Header Color | Background for field-name headers, including measure names. | Blank uses the stylesheet. Example: #981e32. |
| Style: Header Data Color | Background for member headers such as “2013 Fall.” | Blank uses the stylesheet. |
| Style: Glossary Hover Color | Background when a glossary header is hovered or focused. | #5e6a71. Text contrast is chosen automatically. |
| Style: Data Bars | Bars behind the values of named measures. | Blank. NAME: #hex[: 100%]; ... |
| Style: Cell Color (heat map) | Color numeric cells using each measure’s own range. | Off. Hidden measure columns and total cells do not set the range. |
| Style: Cell Color Low | Color at the low end of the range. | #eff6ff. |
| Style: Cell Color High | Color at the high end of the range. | #1e3a8a. |
| Tooltip: Glossary Descriptions | Enable descriptions on eligible headers. Workbook descriptions take precedence over live source descriptions. | On. A field with no description has no glossary tooltip. |
| Tooltip: Glossary on Data Headers | Also show a field’s description on column headers that display a data value, such as 2013 Fall. | Off. Measure headers and row-field names still show their own descriptions. |
| Tooltip: Indicator | Visible cue that a header has a description. | Corner mark; Underline; Info icon; None. None hides the cue, not the tooltip. |
| Tooltip: Text Align | Text alignment inside the glossary bubble. | Left; Center; Right. |
| Tooltip: Source Badges (Live / Workbook) | Show where the description came from. | Off. |
Data headers. With Glossary on Data Headers off, 2013 Fall does not show the Term description. Headcount still shows the measure description, and College or Ethnicity in the corner still show their field description when the field has one. Turn the switch on to repeat the field description on each data value.
A measure header keeps its description even when Header: Display Label shortens it. A column renamed to % is still a Values header, so it shows the description of the measure behind it. To remove that tooltip, clear the measure’s description.
| Property | What it controls | Default / choices |
|---|---|---|
| Print: Buttons | Show Print PDF for this table and/or Print Canvas for Glossary Pivots on the active canvas. Enable Print Canvas on one table per canvas. | None; Print PDF; Print Canvas; Both. |
| Print: Page Orientation | Page direction for generated print content. | Landscape; Portrait. |
| Print: Margins | Margins on each page. | Normal (0.5 in); Narrow (0.25 in); Wide (1 in). |
| Print: Table Width | Fit to page margins or keep content width. | To margins; To content. |
| Print: Canvas Page Breaks | Start each table on a new page or pack tables together. | One page per report; Minimize blank space. |
| Print: Follow Theme | Use the host accent color for the print buttons. | On. |
| Debug: Log Column Metadata (Console) | Log metadata IDs and description origins for diagnosis. | Off. Does not log cell values. |
Oracle also supplies Title, Tooltip, Visibility, theme/style, Size and Position, and Filters controls. Those are host properties. Available controls and whether size fields are editable depend on the canvas layout and OAC version.
4. Number formats
Enter in Format: Per-Measure Override (id:format:decimals; …)
Headcount:number:0;
Rate:percent:1;
Average GPA:number:2;
Amount:currency:2;
Volume:compact:1
Use auto, number, percent, currency, or compact. Decimal places can be auto or 0 through 4. A per-measure setting takes precedence over the table’s Number Format and Decimal Places settings.
| Raw value | Format | Displayed result |
|---|---|---|
| 0.375 | Rate:percent:1 | 37.5% |
| 37.5 | Rate:number:1 | 37.5 |
| 37.5 | Rate:percent:1 | 3750.0% — the value is multiplied by 100 again. Do not use this combination for a rate already scaled to 100. |
Auto preserves OAC’s formatted cell text. Explicit formats use the numeric value. A format changes presentation; it does not choose a denominator or fix an incorrect total.
5. Total calculations
Enter in Totals: Measure Rules (name = sum | avg | distinct | level(A, B) | weighted(W) | ratio(N, D) | none; …)
Amount = sum;
Average Score = avg;
Lowest Score = min;
Highest Score = max;
Rate = ratio(Selected Count, Headcount);
Average GPA = weighted(Graded Credits);
Do Not Total = none
| Rule | Calculation | When to use it |
|---|---|---|
sum | Add the nonblank source cells. | Additive amounts or counts from disjoint populations. |
avg | Arithmetic mean of the nonblank source cells. | Each displayed cell should have equal weight. It does not recover a student-level average from unequal groups. |
min / max | Smallest / largest source cell. | Extremes of the values received by the visualization. |
none | Leave the total blank. | The total has no useful or supported meaning. |
weighted(W) | Σ(value × weight) ÷ Σ(weight). | Averages or rates when the correct weight is available in Values. |
ratio(N, D[, scale]) | Σ(numerator) ÷ Σ(denominator), multiplied by an optional scale (default 1). Since 0.20.6, N or D can be level(A, B); that side uses the source total chosen for the scope instead of a sum. | A total rate from compatible numerator and denominator measures. Use a level side when the numerator or denominator is a distinct count (section 7). |
distinct | Keep a single aggregated cell; leave a multi-cell total blank. | Prevent an unsupported sum of overlapping distinct counts. This rule does not deduplicate students. |
level(A, B) | Use the first listed measure that is the same number on every cell in that total. A listed measure missing from Values blanks the total. | A college subtotal and the grand total need different source totals. List the narrower total first. |
Source totals, including inside ratio
Unique Headcount = level(College Distinct HC, Term Distinct HC);
Share = ratio(level(College Distinct HC, Term Distinct HC), level(Selected Distinct HC))
On a college subtotal, the first line shows the college’s own distinct count. On the grand total it shows the term’s distinct count. The second line divides that same number by the distinct count for the whole selection. Section 7 gives the full workbook setup.
A rate from numerator and denominator
Suppose two disjoint groups contain 10 of 20 and 90 of 100 selected students. Their percentages are 50% and 90%. The combined rate is 100 ÷ 120 = 83.3%. Adding the percentages gives 140%; their simple average gives 70%. Neither is the combined rate.
Total rule, for a measure named Rate
Rate = ratio(Selected Count, Headcount)
Format for a fraction such as 0.8333
Rate:percent:1
If detail Rate values are already on a 0–100 scale, keep the total on that scale:
Rate = ratio(Selected Count, Headcount, 100)
Rate:number:1
The last format displays 83.3 without adding a percent sign. Prefer a 0–1 source rate with Percent format when you want 83.3%.
A weighted average
With GPAs 3.0 and 4.0 and corresponding graded credits 10 and 30, the weighted average is (3.0 × 10 + 4.0 × 30) ÷ 40 = 3.75. The unweighted average would be 3.50.
Average GPA = weighted(Graded Credits)
Graded Credits
Enter the second line in Header: Hidden Columns if the weight should stay out of view. Keep Graded Credits in Values. Its population and grain must match the GPA measure.
Read this before using a total rule. Totals normally summarize source cells returned to this visualization. They do not rerun the source measure at a broader population automatically. A ratio of sums is valid only when its inputs can be combined that way. A referenced measure marked distinct causes a dependent ratio or weighted total to stay blank over multiple cells; a level(...) side of a ratio is not affected. Explicit rules read original values before the extension’s percentage-of-total transformation.
Blank cells are skipped. A zero divisor or missing referenced measure produces a blank result. Unlisted measures normally sum. With configured rules, measures whose identity cannot be resolved safely can also have blank totals.
7. Overlapping distinct counts
A student with two plans in one college counts once in that college. A student with plans in two colleges counts once in each college and once in the overall population. College counts and percentages can therefore add to more than the overall total and 100%.
Verified workbook setup, not a general extension change. This setup was checked live on 2026-10-20 against the standard pivot. The layout was College then IPEDS Ethnic Origin Desc in Rows, Term in Columns, with row subtotals and a grand total. Every college subtotal and the grand total matched for one term (2013 Fall) and for two terms (2013 Fall and 2014 Fall). It uses the source’s distinct aggregation. It does not reconstruct overlap from college counts.
Step 1. Add the source totals
These formulas go in Create Calculation → Expression, not in the properties text boxes. The source Unique Headcount measure must already count distinct students. The paths below are the ones the reviewed Census workbook uses for Unique Headcount and Term. For College, use the same field that is in Rows. Drag it from the data panel into the editor instead of typing it; typed names often fail validation.
| Calculation name | Expression | Value on each row |
|---|---|---|
| College Distinct HC | AGGREGATE(Unique Headcount BY Term, Plan Owner Academic Group Desc) | The college’s distinct count for that term. Repeated on every ethnicity row in the college. |
| Term Distinct HC | AGGREGATE(Unique Headcount BY Term) | The term’s distinct count. The same on every row in the term. |
| Selected Distinct HC | AGGREGATE(Unique Headcount BY ) | The distinct count across everything the filters select. The same on every row. |
| College Share of Distinct Selected Headcount | Unique Headcount / AGGREGATE(Unique Headcount BY ) | The percentage shown in the table. |
Full form of two of these, as saved in the Census workbook
AGGREGATE(
"Census"."New Student Enrolled"."Unique Headcount"
BY "Census"."New Student Enrolled"."Term"
)
"Census"."New Student Enrolled"."Unique Headcount"
/
AGGREGATE(
"Census"."New Student Enrolled"."Unique Headcount"
BY
)
The empty BY list is intentional. It asks the source for the total across the filtered selection, without College or Term grouping. This matches the standard pivot’s Percent Of All Values denominator. Validate it against your own source before reusing it.
Step 2. Bind the fields
| Grammar bucket | Fields |
|---|---|
| Rows | Plan Owner Academic Group Desc, then the demographic field (for example IPEDS Ethnic Origin Desc) |
| Columns | Term |
| Values | Unique Headcount; College Share of Distinct Selected Headcount; College Distinct HC; Term Distinct HC; Selected Distinct HC |
To add a measure in the Grammar panel, drop it on the Values heading. Dropping it on an existing measure replaces that measure.
Step 3. Apply the total rules
Enter in Totals: Measure Rules
Unique Headcount = level(College Distinct HC, Term Distinct HC);
College Share of Distinct Selected Headcount = ratio(level(College Distinct HC, Term Distinct HC), level(Selected Distinct HC))
Result for 2013 Fall: the Agri Human & Nat Res Sciences subtotal shows 307 and 7.4%, and the grand total shows 4,163 and 100.0%. With 2013 Fall and 2014 Fall selected, the grand total shows 4,163 / 48.3% and 4,457 / 51.7%, the same as the standard pivot.
Why these rules work
Let C be a college’s distinct count, D the term’s distinct count, and G the distinct count across the whole selection.
College subtotal: count = C, percentage = C / G
Grand total: count = D, percentage = D / G
level uses College Distinct HC on a college subtotal because that number repeats on every row in the college. On the grand total the college numbers differ, so it moves on to Term Distinct HC. The ethnicity rows are never added together, so students counted in two colleges are not double counted. No total is hardcoded; the source still has to calculate C, D, and G correctly.
Edge case: level recognises the college scope by the repeated number. If every college in view had exactly the same count, the grand total would use that number. With a single college in view, the college count is the term count, so the result is still right.
Step 4. Set display properties
Format: Per-Measure Override
Unique Headcount:number:0;
College Share of Distinct Selected Headcount:percent:1
Header: Display Label
Plan Owner Academic Group Desc:College;
College Share of Distinct Selected Headcount:%
Header: Hidden Columns
College Distinct HC; Term Distinct HC; Selected Distinct HC
Set Grand Total Row: On, Row Subtotals: On, Grand Total Column: Off, and Group Collapse: Off. Leave Values: Show as % of Total blank for these source-calculated measures.
The saved comparison workbook also keeps two older measures hidden, Unique Headcount as Percentage Format and College Share of Distinct Term Headcount. The rules above do not use them.
Scope matters. These rules cover College and demographic rows with Term columns. A Grand Total Column does not deduplicate students across terms. Collapsed groups use the same rules but were not part of the live check. Recheck after Top N, measure filters, a changed grain, or a row limit. A zero or missing denominator gives a blank total.
College rows only, without subtotals
An older setup works when Rows has only College. It needs a helper, College Share of Distinct Term Headcount = Unique Headcount / AGGREGATE(Unique Headcount BY Term), in Values and hidden, and these rules:
Unique Headcount = ratio(Unique Headcount, College Share of Distinct Term Headcount);
College Share of Distinct Selected Headcount = ratio(College Share of Distinct Selected Headcount, College Share of Distinct Term Headcount)
Algebraically these always return the term total (D and D / G), whatever rows they cover. That is right for the grand total, but every subtotal also shows the term total. Do not use them with Row Subtotals; use the level rules above.
If you cannot provide a source denominator
Totals: Measure Rules — suppress an unsupported total
Unique Headcount = distinct
This leaves multi-cell totals blank with an explanation. It prevents a misleading sum; it does not calculate a correct distinct total or repair a percentage denominator.
8. Labels and parameters
Enter in Header: Display Label
Plan Owner Academic Group Desc:College;
Selected Count:@parameter("View By Selector")('Minority');
Selected Percentage:% @parameter("View By Selector")('Minority')
If the parameter is First Gen, the last two headers become First Gen and % First Gen. The default text is used when the parameter has no current value. The parameter and the calculations that respond to it must already exist; this setting only changes the labels.
The original identity remains Selected Percentage. Continue using that original name in formatting and total rules, even when the displayed heading changes. A rename does not change member values or the identity used to retrieve glossary descriptions.
Enter in Header: Hidden Columns
Reporting Sequence; Weight; Denominator
A hidden measure remains available to calculations. A hidden Rows or Columns field still divides the data into groups; hiding it does not combine those groups.
9. Widths and data bars
Enter in Layout: Column Widths
College:260; Headcount:100; Rate:90
Widths are pixels, accepted from 20 through 4000. Named widths override Value Column Width. With wrapping enabled, a column remains wide enough to keep its longest word intact.
Enter in Style: Data Bars
Headcount: #5b7c99;
Rate: #981e32: 100%
The first bar scales to the measure’s largest value in the pivot. The second uses a 100% reference: 1 for fraction-scale values, otherwise 100. The extension infers that scale from the observed range, so values above 1 or negative values can affect the inference. Check the bars against the source units. Bar lengths are capped at a full cell.
Header colors and hover colors use a hex color such as #981e32 or #5e6a71. Text contrast is chosen automatically.
10. Troubleshooting
| Symptom | What to check |
|---|---|
| Every subtotal shows the grand total (for example 4,163 and 100%) | The rules use the older ratio(…, College Share of Distinct Term Headcount) setup, which always returns the term total. With Row Subtotals on, use the level rules in section 7. |
| Subtotal percentages match for one term but not for two | The percentage denominator is the term total. Use level(Selected Distinct HC), the distinct count across the whole selection, as the denominator. |
| Percentages are too small | Inspect the denominator. Are overlapping college counts being summed? Use the source distinct denominator when the population overlaps. |
| Two-term percentages differ from the standard pivot | Check Percent Of All Values versus a separate denominator for each column. Matching single-term results does not establish matching multi-term behavior. |
| Percentage is 100 times too large | Percent format multiplies by 100. A source value or ratio already scaled to 100 should not be multiplied again. |
| A total is blank | Check distinct restrictions, missing helper measures, zero denominators, measure identity, and the exact names in the rule. Adding a rule is not enough if its inputs are missing. |
| A rule is ignored | Use the original field name or ID, not an alias created by Header: Display Label. Check semicolons, the equals sign, argument commas, and supported rule words. |
| A renamed percentage header does not change its calculation | A label is only a label. Change the source measure or percentage/total settings to change the calculation. |
| Hiding a field does not combine its groups | That is current behavior. Remove the field from Grammar only if changing the query grain is intended, then revalidate the totals. |
| A Term description appears on “2013 Fall” | Turn Tooltip: Glossary on Data Headers off. Indicator: None only hides the marker. |
11. Updates and verification
Keep this file current when the extension changes. Update property names, accepted syntax, defaults, examples, and limitations together. Record the extension version and verification date at the top. Do not label a requested feature as available until it has been implemented and checked.
| Evidence | What has been established |
|---|---|
| Current source and specification | All 42 custom controls covered against version 0.20.7, including the defaults in section 3. Rate, weighted-average, level, and ratio(level(…)) arithmetic checked in the regression suite. Numerical teaching examples use synthetic values. |
| Live workbook, 2026-10-20: subtotals (0.20.6) | “Data Checking – adding subtotal” canvas, College × IPEDS Ethnic Origin Desc rows, Term columns, with subtotals and grand total, using the section 7 rules. All 12 college subtotals and the grand total matched the standard pivot for 2013 Fall. All 14 college subtotals and both grand-total columns matched for 2013 Fall + 2014 Fall. The two-term filter was a temporary test and was not saved. |
| Live workbook, 2026-10-20: College rows only (0.20.4) | The older ratio setup, compared with the standard pivot: 26 populated numeric cells matched for one term; 54 for two terms; 12 for a two-college, two-term filtered selection. |
| Live workbook, 2026-10-20: tooltips (0.20.5) | With Glossary on Data Headers off, Term headers such as 2013 Fall showed no glossary marker or tooltip. Measure headers and the College header kept theirs. |
| Still outside the live checks | Collapsed groups, a Grand Total Column with distinct counts, other demographic fields, arbitrary source measures, source row limits, and print output with this calculation setup. |
- Use the same source fields, filters, and denominator scope in both pivots.
- Compare every detail row and total, not just a selected percentage.
- Include overlapping populations and unequal denominators in the checks.
- Test one term, multiple terms, and a filtered subset. Check zero and missing inputs where applicable.
- Save, reopen, and verify the intended state. Record untested scopes.