โ† Back to Time Intelligence Visual

๐Ÿ“Š Complete Documentation

Time Intelligence Visual for Microsoft Power BI

Version 1.0.0.0

๐Ÿ“– Introduction

Time Intelligence Visual is a custom visual for Microsoft Power BI that transforms how you analyze time-based data. Unlike standard Power BI charts, it provides dynamic period switching, smart comparisons, and interactive filtering โ€” all inside a single visual, with zero DAX time-intelligence measures required.

๐Ÿ“…

Dynamic Time Intelligence

Automatically aggregate and analyze data by Day, Week, Month, Quarter, or Year with a single click.

โ‡„

Smart Comparisons

Compare periods sequentially or positionally with intelligent previous-period matching.

๐ŸŽฏ

Interactive Filtering

5 dynamic dropdowns let users explore data by Year, Quarter, Month without slicer clutter.

๐Ÿ“ˆ

Period Summary

Intelligent narrative showing highest, lowest, totals, and overall trends at a glance.

๐ŸŽจ

80+ Customizations

Complete control over colors, styles, labels, legends, animations, and more.

โ™ฟ

Fully Accessible

Keyboard navigation, screen reader support, high-contrast mode compliant.

Who Should Use This Visual?

  • Finance teams โ€” revenue trending, budget vs actual, variance analysis
  • HR analytics โ€” headcount tracking, hiring trends, turnover analysis
  • Sales performance โ€” period-over-period sales, quota tracking, territory comparison
  • Operations โ€” production metrics, efficiency tracking, capacity planning
  • Marketing โ€” campaign performance, lead generation, ROI tracking
  • Executive dashboards โ€” high-level KPI tracking with drill-down capability
Perfect for: Anyone who needs to analyze how metrics change over time with flexible period grouping and comparison options.

๐Ÿ“ฅ Installation

Import from File (.pbiviz)

1

Open Power BI Desktop

Launch Microsoft Power BI Desktop on your computer.

2

Open the Import Menu

In the Visualizations pane, click the three dots (โ€ฆ) โ†’ Import a visual from a file.

3

Select the .pbiviz file

Browse to the TimeIntelligenceVisual.pbiviz file included in your download.

4

Confirm the security prompt

Click OK on the "uncertified visual" warning. This is expected โ€” the visual is direct-sold, not distributed through AppSource.

5

Done

The visual icon now appears in your Visualizations pane, ready to use in any report.

Organization / tenant restrictions: Some organizations block custom visuals by default. If the import is blocked, ask your Power BI administrator to enable "custom visuals from files" in the Power BI Admin Portal โ†’ Tenant Settings.

Power BI Service (Cloud)

Once imported in Desktop, the visual travels with your report automatically when you publish to Power BI Service. Recipients viewing the report don't need to install anything separately.

๐Ÿš€ Quick Start Guide (5 Minutes)

Step 1 โ€” Add the Visual

1

Click the visual icon

An empty placeholder appears on your report canvas.

Step 2 โ€” Add Your Data

2

Add a Date field

Drag a Date or DateTime column into the Date field well. Example: OrderDate, HireDate.

Make sure the field is a genuine Date data type in Power BI, not Text. Check the column icon in the Fields pane (should show ๐Ÿ“…).
3

Add a Measure

Drag a numeric measure into Values. Example: Sales, Headcount.

Chart created! Bars now appear, aggregated by the default period (Monthly).

Step 3 โ€” Configure Time Period

4

Select a period

Use the Period dropdown in the control bar: Daily ยท Weekly ยท Monthly ยท Quarterly ยท Yearly ยท YTD.

Step 4 โ€” Add Comparison (optional)

5

Enable comparison

Use the Compare dropdown: vs Previous Period or vs Same Period Last Year.

Step 5 โ€” Drill in with filters

6

Use Year / Quarter / Month dropdowns

Narrow the chart to a specific year, quarter, or month โ€” the visual recalculates comparisons automatically.

๐ŸŽ‰ That's it โ€” a fully interactive time-intelligence chart with zero DAX.

Sample Scenario

Business question: "Show monthly sales in 2024 Q2 compared to the previous quarter."

SettingValue
Date fieldOrderDate
ValuesSales
PeriodMonthly
Comparevs Previous Period
Year2024
QuarterQ2

Result: April, May, June 2024 (Q2) shown against January, February, March 2024 (Q1 โ€” the previous period).

๐Ÿ“Š Data Requirements

Field Wells

Field WellTypeRequiredMaxDescription
DateDate / DateTimeโœ… Yes1Date field for grouping (daily granularity recommended)
ValuesNumericโœ… Yes1โ€“5Measure to display (first measure is charted)
TooltipsAnyOptional0โ€“5Additional fields shown on hover

Date Field Requirements

โœ… Supported

  • Standard Date column (e.g. 2024-01-15)
  • DateTime column
  • Date column from a Date dimension table

โŒ Not supported

  • Text columns storing dates (e.g. "January 2024" as text)
  • Power BI date hierarchies (Year > Quarter > Month > Day) โ€” use the base date column
  • Numeric date representations (e.g. 20240115)
If your dates are stored as text, convert them first in Power Query:
= Table.TransformColumnTypes(#"Previous Step", {{"DateColumn", type date}})

Values Field Best Practices

  • Use SUM for additive metrics (Sales, Quantity, Hires)
  • Use AVERAGE for non-additive metrics (Price, Score, Rating)
  • Negative values are supported โ€” bars extend below zero
  • Skip custom time-intelligence DAX โ€” the visual computes YTD/MTD/QTD/CAGR itself

Data Volume Guidance

Row CountPerformanceRecommendation
< 10,000๐ŸŸข ExcellentNo optimization needed
10,000โ€“50,000๐ŸŸข GoodWorks great with all features
50,000โ€“100,000๐ŸŸก FairConsider disabling animations
> 100,000๐ŸŸ  SlowPre-aggregate data before loading
Tip: For millions of transaction rows, pre-aggregate to daily/weekly level in Power Query before loading into Power BI.

โš™๏ธ Basic Setup

1

Resize the visual

Recommended minimum: 600 ร— 400px. The control bar wraps dropdowns automatically on smaller sizes.

2

Populate field wells

Date โ†’ your date column. Values โ†’ up to 5 measures (first one is charted). Tooltips (optional) โ†’ extra context fields.

Only the first measure in Values is charted currently. To show multiple metrics side by side, use multiple instances of the visual with synced slicers.
3

Set your defaults in the Format pane

Configure Default Time Period, Default Comparison, and Default to Latest Year so the report opens exactly how you want it, every time.

๐ŸŽ›๏ธ Control Bar & Dynamic Filters

Five interactive dropdown filters let end users explore data without cluttering the report with slicers.

1. ๐Ÿ“… Period

OptionGroups byExample
Daily1 dayJan 1, Jan 2, Jan 3โ€ฆ
Weekly1 ISO weekW01, W02, W03โ€ฆ
Monthly1 monthJan 2024, Feb 2024โ€ฆ
Quarterly1 quarterQ1 2024, Q2 2024โ€ฆ
Yearly1 year2022, 2023, 2024โ€ฆ
YTDCumulative by monthJan YTD, Feb YTDโ€ฆ
Weekly uses ISO 8601 (week starts Monday; Week 1 contains Jan 4th).

2. โ‡„ Compare

OptionBehaviorUse case
No ComparisonCurrent period onlySimple trend view
vs Previous PeriodEach period vs immediately preceding oneMoM, QoQ growth
vs Same Period Last YearEach period vs same period, prior yearYoY growth

Sequential vs Positional

Sequential (default):
  Jan 2024 vs Dec 2023
  Feb 2024 vs Jan 2024

Positional (when a sub-period is filtered), e.g. Weekly + Month=March:
  Week 1 of March vs Week 1 of February
  Week 2 of March vs Week 2 of February
The visual auto-detects when to use positional vs sequential comparison based on your filter selections.

3. ๐Ÿ“† Year / โ—ง Quarter / ๐Ÿ—“ Month

  • Year โ€” hidden when Period = Yearly. "Default to Latest Year" auto-selects the newest year.
  • Quarter โ€” shown for Daily/Weekly/Monthly/YTD. Hidden for Quarterly/Yearly.
  • Month โ€” shown only for Daily/Weekly. Options narrow automatically to the selected quarter.

Active Filter Chips

Selected filters appear as chips below the control bar with individual โœ• clear buttons and a "Clear All" action when 2+ filters are active.

Format Pane โ€” Control Bar Settings

Appearance

Show Control Bar

Default: On

Toggle the entire bar on/off

Position

Default: Top

Top or bottom of the visual

Height

Default: 40px (28โ€“80)

Auto-expands when dropdowns wrap

Background Color

Default: #F5F7FA

Text Color

Default: #333333

Accent Color

Default: #4472C4

Focus states, selected options

Font Size

Default: 12px (8โ€“18)

Dropdown labels

Dropdown Options Font Size

Default: 12px (8โ€“16)

Menu item text

Default Selections

Default Time Period

Default: Monthly

Default Comparison

Default: No Comparison

Default to Latest Year

Default: Off

Auto-select most recent year

Default Quarter

Default: All Quarters

or a specific quarter / Latest Quarter

Default Month

Default: All Months

or a specific month / Latest Month

Visibility Toggles

Show Year Filter

Default: On

Permanently hide dropdown

Show Quarter Filter

Default: On

Show Month Filter

Default: On

Responsive Behavior

  • >700px: all dropdowns on one row
  • 500โ€“700px: wraps to two rows
  • <500px: stacks vertically, labels become icons

๐Ÿ“… Time Periods Deep Dive

Daily

One bar per calendar day.

Best for: Detailed day-by-day analysis, daily patterns.

Example use case: Daily website traffic, daily sales, daily production.

Weekly

One bar per ISO week (Monโ€“Sun). Some years have 53 weeks.

Best for: Smoothing daily volatility, weekly business cycles.

Example use case: Weekly call volume, weekly hiring.

Monthly

One bar per calendar month.

Best for: Standard business reporting, budget vs actual.

Example use case: Monthly revenue, monthly headcount.

Quarterly

One bar per quarter (Q1 Janโ€“Mar, Q2 Aprโ€“Jun, Q3 Julโ€“Sep, Q4 Octโ€“Dec).

Best for: Board reporting, quarterly targets.

Example use case: Quarterly sales vs target.

Yearly

One bar per calendar or fiscal year.

Best for: Long-term trends, YoY growth.

Example use case: Annual revenue growth.

YTD

Cumulative total from Jan 1 to end of each month.

Best for: Progress toward annual goals.

Example use case: YTD revenue vs annual budget.

Fiscal year support: set the fiscal year start month in Format pane โ†’ Time Intelligence โ†’ Fiscal Year Start Month.

โ‡„ Comparison Modes

Comparisons work automatically once you choose a Compare mode โ€” no DAX needed. The engine intelligently decides between sequential and positional matching based on your active filters (see the Control Bar section for a full breakdown), so "Week 2 of March" always compares against "Week 2 of February" rather than an arbitrary prior week.

Positional matching examples

  • Weekly + Month filter โ†’ weeks in selected month vs weeks in previous month
  • Weekly + Quarter filter โ†’ weeks in selected quarter vs weeks in previous quarter
  • Daily + Month filter โ†’ days in selected month vs days in previous month
  • Daily + Quarter filter โ†’ days in selected quarter vs days in previous quarter
  • Monthly + Quarter filter โ†’ months in selected quarter vs months in previous quarter
Same Period Last Year mode always compares by matching period number (e.g. Week 12 vs Week 12 last year), regardless of filters.

๐Ÿ“Š Chart Types & Styles

  • Column (vertical) or Bar (horizontal) orientation
  • Side by Side โ€” current and previous bars sit next to each other
  • Overlapped โ€” bars overlap by a configurable % for compact comparison
  • Behind (Ghost) โ€” previous period rendered as a lighter "ghost" bar behind current
  • Previous bar position: Left / Right / Behind the current bar
  • Fully configurable: bar spacing, corner radius, bar width %, overlap %

๐Ÿ“ˆ Period Summary

Replaces the traditional chart title with a dynamic, data-driven narrative rendered above the chart.

What it shows

  • ๐Ÿ“ˆ Highest value + period name
  • ๐Ÿ“‰ Lowest value + period name
  • ฮฃ Total across all visible periods
  • xฬ„ Average (optional)
  • Overall % change vs previous (when comparison is active)

3 Narrative Styles

StyleExample
Full"Sales was highest in Feb 2024 at 7 | Lowest in W05 at 1 | ฮฃ Total: 19 | โ–ฒ Overall increased by 12.5% vs previous"
Compact"โ–ฒ Feb 2024: 7 | โ–ผ W05: 1 | ฮฃ 19 | โ–ฒ 12.5%"
Minimal"โ–ฒ7 ยท โ–ผ1 ยท ฮฃ 19 ยท โ–ฒ12.5%"

Customizable: font size, family, color, bold, alignment, background + transparency, display units, decimal places, highlight/positive/negative colors. Responsive โ€” the measure name auto-hides on small screens.

๐Ÿท๏ธ Data Labels

  • Position: Outside End ยท Inside End ยท Inside Base ยท Inside Center
  • Show/hide previous-period labels independently
  • Optional background with transparency control
  • Display units + decimal places
  • Full font control (size, family, color, bold, italic)

๐Ÿ“ Axes Configuration

X & Y Axis

  • Show/hide each axis independently
  • Title text, font, color
  • Label font size, color, family, rotation, word-wrap, max width
  • Grid lines: show/hide, color, width, style (solid/dashed/dotted)
  • Y-axis position (left/right), display units, decimal places, min/max range override

๐Ÿ“Š % Change & Error Bars

  • 4 styles: Arrow (โ–ฒโ–ผ) ยท Line with Cap ยท Whisker ยท Bracket
  • Positive/negative colors, thickness, cap width
  • Label position: above bar ยท top of chart ยท on bar
  • Toggle absolute change value instead of percentage

๐Ÿ“ˆ Trend Line & Moving Average

  • Trend line drawn over current-period bars, with animated drawing effect
  • Configurable moving-average window (any number of periods)
  • Line color, width, style (solid/dashed/dotted)
  • Data-point dots with configurable size and elastic pop-in animation

๐Ÿ—‚๏ธ Legend & Tooltip

Legend

  • 8 position anchors: top, topCenter, bottom, bottomCenter, left, right, etc.
  • Custom labels for "Current" and "Previous" period series
  • Full font customization

Tooltip

  • Smart auto-positioning โ€” stays within chart bounds even near edges
  • Shows current value, previous value, % change, absolute change, YTD, running total, moving average, CAGR
  • Separate decimal-place settings for values vs percentages
  • Background, text color, font size fully customizable

๐ŸŽฌ Animation

  • 12 easing types: Linear, Ease In, Ease Out, Ease In-Out, Bounce, Elastic, Back, Cubic, Circle, Exponential, Polynomial, Sinusoidal
  • Stagger option โ€” bars animate one after another with configurable delay
  • Duration range: 100โ€“3000ms
  • Trend line and moving average animate with a drawing effect; dots use elastic pop-in
Disable animations for datasets over ~50,000 rows for smoother performance.

๐Ÿงฎ Time Intelligence Calculations

All calculated automatically โ€” no DAX required:

  • YTD โ€” Year to Date
  • MTD / QTD โ€” Month / Quarter to Date
  • Running Total โ€” recalculated after filtering for accuracy
  • Moving Average โ€” configurable window
  • CAGR โ€” Compound Annual Growth Rate

๐Ÿ”€ Cross-Filtering & Selection

  • Click a bar to cross-filter other visuals on the page
  • Multi-select with Ctrl+Click
  • Selected bars get a configurable highlight border; unselected bars dim to a configurable opacity
  • Click an empty area to clear selection; right-click for a context menu

โ™ฟ Accessibility

  • Full keyboard navigation โ€” Tab, Arrow keys, Enter, Spacebar
  • ARIA labels for screen readers, including custom dropdown components
  • Focus indicators and focus trapping inside open dropdowns
  • High-contrast mode support
  • Screen-reader announcements on data changes

Error Handling

  • Invalid date detection and empty-data states handled gracefully
  • Negative value support โ€” bars extend below zero
  • Large number formatting up to trillions+
  • Date-range validation warnings surfaced in the browser console (F12)

๐Ÿ’ผ Real-World Use Cases

Monthly Revenue Tracking

Business need: Track monthly sales revenue with comparison to the previous month, highlighting growth.

Configuration:

  • Period: Monthly
  • Compare: vs Previous Period
  • Year: 2024 (or All Years for trend)
  • % Change: Arrow style
  • Period Summary: Full narrative with Total and % change

Weekly Hiring Analysis by Quarter

Business need: See weekly hiring patterns within Q2 compared to Q1.

Configuration:

  • Period: Weekly
  • Compare: vs Previous Period
  • Year: 2024
  • Quarter: Q2
  • Comparison style: Behind (Ghost) to see overlap

Year-over-Year Retail Performance

Business need: Compare this year's monthly sales against the same month last year, store by store.

Configuration:

  • Period: Monthly
  • Compare: vs Same Period Last Year
  • Pattern fill on previous-year bars for print clarity
  • Trend line enabled to show trajectory

Contact-Centre Call Volume

Business need: Daily call volume vs the same day last week, with a moving average smoothing daily noise.

Configuration:

  • Period: Daily
  • Compare: vs Previous Period
  • Moving Average: 7-period window
  • Error bars: Whisker style

โœจ Best Practices

Data Modeling

  • Use a dedicated Date dimension table where possible
  • Ensure date columns are genuine Date type, not Text
  • Pre-aggregate very large datasets in Power Query

Visual Design

  • Choose colors with sufficient contrast for accessibility
  • Use pattern fills for previous-period bars if the report may be printed in grayscale
  • Enable data labels for precise values in exec-facing reports
  • Keep Period Summary visible for context โ€” it replaces a static title effectively

Performance

  • Disable animation for datasets over ~50,000 rows
  • Prefer Import mode over DirectQuery where possible
  • Filter data in Power Query before loading into the model

๐Ÿ”ง Troubleshooting Guide

โ“ Visual shows "No data"

Possible causes:

  • No Date or Values field added
  • All data filtered out by Year/Quarter/Month selections
  • Date column contains invalid dates

Solutions:

  1. Verify Date and Values fields are populated
  2. Reset all filters to "All"
  3. Check the date column's data type
  4. Open F12 console for validation warnings

โ“ Import blocked / security warning won't clear

Possible causes:

  • Tenant policy disallows custom visuals from files

Solutions:

  1. Ask your Power BI admin to enable "custom visuals from files" in Tenant Settings
  2. Try importing in Power BI Desktop first, then publish

โ“ Comparisons look wrong when a sub-period is filtered

Possible causes:

  • Expected positional comparison being confused with sequential

Solutions:

  1. Re-read the Comparison Modes section โ€” the visual switches automatically based on active filters
  2. Confirm you have data for the equivalent prior period in your dataset

โ“ Chart feels slow with large datasets

Possible causes:

  • Very high row count with animation enabled

Solutions:

  1. Disable Animation in the Format pane
  2. Pre-aggregate to daily/weekly grain in Power Query
  3. Switch from DirectQuery to Import mode

โ“ Control bar dropdowns overlap or look cramped

Possible causes:

  • Visual is too narrow for the number of visible filters

Solutions:

  1. Resize the visual wider (600px+ recommended)
  2. Hide unused filters (Year/Quarter/Month) in the Format pane
  3. The bar auto-wraps โ€” this is expected behavior below 700px
Still stuck? Visit the Support page or email us directly.