Visuals/Pl. X

    Countdown

    Count down to the deadline, or up from the last incident

    A countdown bound to your data that keeps ticking between refreshes, ends the day at your own midnight and knows your working days. 100 % free, no licence, no watermark.

    Datasheet
    Status
    Available on Microsoft Marketplace
    Price
    Free, no licence
    Licensing
    Nothing to assign. Every feature for every viewer.
    Data
    Computed inside Power BI. No external calls, no API keys, no telemetry.
    Visuals API
    5.11
    Accessibility
    Single-tab-stop keyboard navigation on the board, state shown by icon and word as well as colour, Windows high contrast, screen-reader announcements at most once a minute, reduced motion
    Languages
    English; unit words in 22 languages when Language Of The Words is set to follow the report locale
    Network access
    None (no privileges declared)
    Validation
    210 time-zone cases against Python zoneinfo, 84 working-day cases against numpy
    Works in
    Power BI Desktop, Service, Embedded
    Days since the last lost-time incident counter in Power BI with the best streak
    Pl. X  ·  Countdown  ·  Count up, not just down: days since the last incident, in calendar or working days, with the record to beat.rendered from the shipped visual
    What it does

    SmartVisuals Countdown & Days-Since counts down to any date in your model, or up from the last event, with the best streak on record beside it. It runs on the viewer's clock, so the number on a wall screen stays current all day instead of waiting for the next dataset refresh.

    Nine ways to show it, from a single card in six layouts to a deadline board, a milestone timeline and a pace card that says whether you will make the goal. Time zones, daylight saving, working days, holidays and business hours are settings in the format pane, not DAX to maintain.

    Search all visuals

    Everything in the box

    Every feature, for every viewer.

    No licence, no plan, nothing to assign. The whole visual is free and stays that way.

    Includedevery viewer
    • Counts both waysCount down to a deadline, or up from the last event with the current streak, the best streak and the date the best was set. Count in calendar days, working days or shifts.
    • Ticks live between refreshesRuns on the viewer's clock from a monotonic base, so it neither freezes between refreshes nor drifts after a laptop sleeps. An optional Reference time measure corrects a device clock that is running behind.
    • Real time zonesPin the deadline to the viewer's zone, UTC, a fixed offset or a named zone such as Europe/Prague, with a stated, tested daylight-saving policy and a choice of which midnight ends the day.
    • Working days, holidays and shiftsWorking weekdays, a bound column of non-working dates and a business-hours window that may cross midnight for a night shift.
    • Recurring deadlinesDaily, weekly, monthly, quarterly or yearly, plus end of every month, end of every quarter and fiscal-year end, with month-length clamping. After zero, keep counting, stop, show a message or roll to the next occurrence.
    • Deadline board, timeline and paceEvery milestone as a row sorted by urgency with a state chip and cross-filtering, the same dates on a timeline with a now marker, and Actual against Goal with the rate still needed and the projected finish.
    • Six layouts, four themesPlain, blocks, flip clock, ring, bar and one line, in the SmartVisuals, Dark, Clean and Slate themes, with a format-pane control for everything drawn on screen. Fit The Number To The Visual (Text card, on by default) sizes the number to the space it has, inside the ring too; Hide Seconds Beyond in the Units card drops the seconds while the count is longer than the hours you set (48 by default); and the deadline board shows as many rows as fit the visual's height, up to Maximum Rows, with a line such as + 6 more for the rest (Say How Many Rows Are Hidden).
    • Honest about its inputRows that are not dates are skipped and reported with a warning, never guessed at. An unknown time-zone name is flagged too. No network calls, no locked features.

    How do you show days since the last incident in Power BI?

    Bind the column of incident dates to Event dates and the visual counts up from the most recent one: "312 days since the last lost-time incident". With the whole column bound it also finds the best streak on record and the date it was set, so the screen carries the record to beat as well as the current run. With a single event there is no earlier gap, and the best streak is shown as the current one rather than as zero.

    The count can be in calendar days, working days or shifts. A plant running a night shift can count shifts since the last incident, using a business-hours window that crosses midnight, and when the count is in working days the big number and the best streak are both in working days, so the two are always comparable.

    Why does a DAX countdown on a Card go stale?

    The usual workaround is a measure such as DATEDIFF ( MAX ( Incidents[Date] ), TODAY (), DAY ) on a Card. It has two faults. A report page does not re-run its queries on its own, so a page left open on a wall screen shows the number from when it was loaded until someone interacts or the model refreshes. And in the Power BI Service, TODAY () and NOW () run in UTC, so a plant in Central Europe sees the day change at 01:00 or 02:00, and a plant in North America sees it in the early evening.

    SmartVisuals Countdown & Days-Since computes the count in the browser, from the viewer's clock, and keeps ticking between dataset refreshes. It ticks once a minute when seconds are not on screen and once a second when they are, stops entirely when the visual is hidden or scrolled out of view, and recomputes from a monotonic clock after a laptop sleeps, so it never drifts. Where a device clock cannot be trusted, bind a measure such as UTCNOW () to Reference time and a device clock running behind the model is corrected.

    Whose midnight does the countdown use?

    A Power BI datetime carries no time zone: 2026-12-31 23:59 is just a wall-clock reading. Left alone, it resolves against the zone of whoever opens the report, so the same deadline arrives at different moments in Prague and in Chicago. The Time Zone card makes the choice explicit: the report viewer's local zone, UTC, a fixed offset such as +02:00, or a named zone such as Europe/Prague. With a named zone, a shop floor ends its day at its own midnight on every screen.

    Daylight saving follows a stated policy. A time that does not exist on a spring-forward night is moved forward by the length of the gap, and a time that occurs twice on a fall-back night resolves to the earlier occurrence. Both are tested against Python's zoneinfo in 210 cases, including half-hour and quarter-hour zones and southern-hemisphere transitions. Show The Zone On The Visual prints the zone and its current offset under the number.

    How do you count working days, holidays and shifts?

    Sixty calendar days to an audit is the wrong number when the plant shuts for a week in between. Turn on Count Working Time, pick the working weekdays, and bind a column of public holidays and shutdown dates to Non-working dates. The countdown keeps its calendar reading and adds a line with the working days left. Limit To Business Hours narrows the count to a daily window, including one such as 22:00 to 06:00 for a night shift.

    The working-day counts are tested against numpy.busday_count with real holiday sets, 84 cases in all. The holiday table does not need a relationship to the deadline table; binding both gives the visual every distinct holiday date and each milestone still appears once.

    Can one visual track every deadline in a project?

    Bind a milestone table, Caption and Deadline, and set Mode to Deadline board. Every milestone becomes a row sorted by urgency, overdue rows on top, with a state chip that says Due soon, Due today or Overdue in words as well as colour. Each row cross-filters the rest of the report, and the board is one keyboard tab stop with arrow keys between rows. Milestone track puts the same dates on a timeline with a now marker.

    Add an Actual and a Goal measure and set Mode to Pace: the card reports whether you are ahead of plan, on track or behind, the gap to plan, the rate you still need per day or per working day, and the projected finish. The board, the timeline and the pace analytics are free, like everything else in the visual.

    Use cases

    Where Countdown earns its place.

    Days without a lost-time incident on a shop-floor screen

    A safety lead binds SafetyEvents[IncidentDate] to Event dates and leaves Mode on Auto, which switches to Days since as soon as event dates arrive. The screen shows the days since the last incident with the best streak on record and the date it was set underneath, and with Deadline Time Zone set to the plant's named zone (for example Europe/Prague) the counter turns over at the plant's own midnight, not UTC's.

    Project milestones as a deadline board

    A project office binds Milestones[Milestone] to Caption and Milestones[TargetDate] to Deadline and sets Mode to Deadline board. Every milestone becomes a row sorted soonest first, overdue rows on top, each with a state chip (Due soon, Due today, Overdue) driven by the thresholds in the States card. Clicking a row cross-filters the milestone table beside it.

    Month-end close countdown that resets itself

    A finance team needs no date column at all: in the Recurrence card they pick End of every month and set At (HH:MM) to 23:59, then set After It Reaches Zero to Roll to the next occurrence. With Layout set to Ring, the ring shows how far through the month they are, and the countdown starts again on the 1st without anyone editing the report.

    Working days left before an audit, holidays excluded

    A quality manager binds the audit date to Deadline and a column of public holidays and shutdown dates to Non-working dates, then turns on Count Working Time in the Working Time card. The big number keeps the calendar countdown and the readout underneath gives the working days left, with weekends and every bound holiday taken out.

    Are we on pace for the quarterly output goal

    An operations analyst binds a production measure to Actual, the quarterly target to Goal, the quarter start to Start and the quarter end to Deadline, and sets Mode to Pace. The card shows the time left plus a verdict (Ahead of plan, On track, Behind plan), the gap to plan, the rate still needed per day and the projected finish. Spread Over set to Working days spreads the remaining work across working days only.

    Getting started

    From empty canvas to first chart.

    1. 01

      Drop a date column on Deadline to count down to it, or on Event dates to count the days since.

    2. 02

      No date column? Type a date such as 2026-12-31 23:59 into Date (When No Field Is Bound) in the Countdown card.

    3. 03

      Set the Time Zone card to the zone the deadline belongs to, and turn on Working Time if weekends and holidays should not count.

    4. 04

      Bind a Caption column with many deadlines and pick Deadline board, or add Actual and Goal for Pace. Everything is free.

    Get Countdown

    Two ways in.

    Installation instructions for both paths are on the download page.

    Microsoft Marketplace (recommended)

    Reviewed by Microsoft, updates automatically, licences assigned in the Microsoft 365 admin center.

    Open Microsoft Marketplace
    Accessibility

    Readable and usable for everyone.

    Tab
    Moves into the visual. The countdown card, the deadline board and the milestone track are each a single tab stop.
    Down arrow / Up arrow
    On the deadline board, moves to the next or previous row; it stops at the first and last row.
    Enter / Space
    Cross-filters the report: on the board to the highlighted row, on a single countdown to its date.
    Ctrl+Enter
    Adds the row to the current selection instead of replacing it.
    Escape
    Clears the selection.
    • Screen readers

      A single countdown is read as one sentence with its caption, for example Audit: 12 days 4 hours remaining, or 312 days since the last event. Updates are announced politely when the leading unit or the state changes and otherwise at most once a minute, so a ticking clock never floods the screen reader. The board announces how many deadlines it holds and the soonest one, and reads each row's caption and time left as the arrow keys reach it.

    • Not colour alone

      Every state has an icon and a word as well as a colour: ▲ Due soon, ● Due today and ■ Overdue, and the board puts the same word in a chip on each row. Show State Icon and Show State Label in the States card are on by default, and the words can be changed there.

    • High contrast

      In Windows high contrast mode the number, the state colours, the board chips and the secondary text all take the system foreground colour, and the tinted fill behind each board chip is dropped. The state is still told by the icon and the word.

    • Reduced motion

      When the operating system asks for reduced motion, the flip and fade effects on changing digits and the blinking separator are switched off. The numbers keep updating; only the movement goes.

    • Languages

      The format pane is in English. Set Language Of The Words in the Units card to Follow the report locale and the unit words (days, hours, minutes, seconds) appear in the report's language with correct plurals, in 22 languages: Arabic, Chinese, Czech, Danish, Dutch, English, Finnish, French, German, Hebrew, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Russian, Slovak, Spanish, Swedish, Turkish and Ukrainian. Digits follow the report locale too, and Arabic and Hebrew get a right-to-left layout.

    Release notes

    What changed, and when.

    Updates install automatically from Microsoft Marketplace. Full history.

    1. 1.0.1.0

      First release on Microsoft Marketplace.

      • Countdown, days since with streak records, progress, deadline board, milestone track and pace.
      • Ticks live between dataset refreshes, in a named time zone.
      • Working days, holidays, business hours and recurring deadlines.
    Questions

    Asked before you did.

    More questions? See support or write to hello@smartvisuals.io.

    Yes. Every feature is free, including the deadline board, the milestone timeline and the pace analytics. There is no licence, no watermark and no premium tier.

    One date is enough. Drop a date column on Deadline to count down to it, or on Event dates to count up from the most recent event; with no column at all, type a date into Date (When No Field Is Bound) as 2026-12-31 or 2026-12-31 23:59. Everything else is optional: Caption names each deadline, Start gives the progress layout its window, Non-working dates removes holidays, Reference time corrects a wrong device clock, Actual and Goal drive Pace, and Tooltips adds fields to the tooltip. With Mode on Auto (from the fields), bound event dates give a days-since counter, several captions with several deadlines give the deadline board, and a Start date gives progress.

    The visual reads up to 5,000 rows. The deadline board shows 8 rows by default; Maximum Rows in the Deadline Board card goes up to 200, as long as the visual is tall enough, and a line such as + 6 more says how many are hidden. The milestone track draws up to 60 milestones.

    No. The visual declares no privileges and makes no network requests. Time zones use the browser's own time-zone data, so nothing leaves your report.

    It works until the report is published. In the Service, TODAY() runs in UTC, so the day changes at UTC midnight rather than yours, and an open report page does not re-query on its own, so the number freezes until someone interacts or the model refreshes. The visual counts in the browser and keeps ticking.

    The clock of the device showing the report. If that clock may be wrong, bind a measure such as UTCNOW() to Reference time: a device clock running behind the model by more than 90 seconds is corrected. A reference older than the device clock, which is normal after an overnight Import refresh, is ignored so it never rewinds a correct clock.

    Yes. Pick the working weekdays in the Working Time card, bind a column of holidays and shutdown dates to Non-working dates, and optionally limit the count to a business-hours window. For a days-since counter, Count In offers calendar days, working days or shifts.

    You choose in After It Reaches Zero: keep counting as overdue (the default), stop at zero, show your own message, or roll to the next occurrence of a recurring deadline.

    Numbers are never read as dates, because an Excel serial and a Unix timestamp look the same and a wrong guess would be silently wrong. Those rows are skipped and a warning says how many. Text is read only when the browser recognises it as a date, such as 2026-12-31 23:59; other text is skipped the same way. The reliable fix is to change the column type to Date or Date/Time in the model.

    Yes. Click a row on the deadline board, or the countdown card itself, and the other visuals filter to it; hold Ctrl to add more rows. With the keyboard, Tab into the board, move with the up and down arrow keys, press Enter or Space to filter and Escape to clear. Rows outside your selection stay on the board, dimmed, so it still reads as a whole list, and right-clicking opens the Power BI context menu.

    The format pane and the visual's own text are in English. Set Language Of The Words in the Units card to Follow the report locale and the unit words (days, hours, minutes, seconds) follow the report's language with correct plurals in 22 languages, including Czech, German, French, Spanish, Polish, Japanese and Arabic; digits follow the locale too. Each word can also be typed in yourself in the Units card.

    Use the Report a bug block on the support page, or write to hello@smartvisuals.io. Mention the visual's version, where it happens (Power BI Desktop, the Power BI Service or a mobile app) and the field mapping; a screenshot helps.
    Troubleshooting

    When it does not look right.

    Found a bug or missing something? Post it on the requests board or vote for what others asked; the developer answers within two business days.

    The visual shows a countdown to the end of this month and a hint, not my deadline.
    That is the start screen. It appears while nothing is bound to Deadline or Event dates and no usable date is typed in the Countdown card. Either drop a date column on Deadline (or on Event dates for a days-since counter), or type a date into Date (When No Field Is Bound) in the format 2026-12-31 or 2026-12-31 23:59. Other formats such as 31/12/2026 are not read, and the start screen stays.
    A warning icon says some rows are not dates, or the visual shows no date to count to.
    The bound column holds text or numbers rather than dates. The visual never reads a number as a date on purpose: an Excel serial, Unix seconds and Unix milliseconds look the same, and a wrong guess would be silently wrong. Change the column's data type to Date or Date/Time in Power Query or the model. Also check the field well: if it shows Date Hierarchy, open the field's menu and choose the column itself so the visual receives the full date, not Year or Month on their own. The warning can be turned off with Warn About Rows That Are Not Dates in the Diagnostics card.
    A milestone is missing from the deadline board.
    Three usual causes. Rows with a blank Deadline have no date to count to and are left off the board. The board shows at most the number set in Maximum Rows (8 by default) and only as many rows as fit the visual's height, so make the visual taller or raise Maximum Rows; Say How Many Rows Are Hidden adds a line such as + 6 more so nothing disappears without a trace. Finally, the visual reads up to 5,000 rows, and binding Non-working dates from an unrelated table multiplies milestones by holidays, so a few hundred of each can exceed that.
    The days-since counter turns over in the middle of a shift, not at midnight.
    Day boundaries follow the zone in the Time Zone card. With Deadline Time Zone on Report viewer's local zone, the day ends at the viewer's own midnight, or at UTC midnight if A Day Ends At is set to UTC midnight. For a plant screen, set Deadline Time Zone to Named zone and type the plant's zone in Named Zone, for example Europe/Prague, so the count changes at the plant's midnight whatever device shows it. Turn on Show The Zone On The Visual to see which zone and offset are in use.
    A warning says Unknown time zone and the deadline looks an hour or more off.
    The text in Named Zone (e.g. Europe/Prague) is not a valid IANA zone name, so the visual falls back to the report viewer's own zone. Check the spelling and use the Region/City form, for example America/New_York or Asia/Kolkata. For a fixed offset with no daylight saving, choose Fixed offset in Deadline Time Zone and type it as +02:00.
    Different people see slightly different numbers, or one screen is clearly wrong.
    The visual ticks on the clock of the device showing the report, which is what keeps it live between refreshes, so a device with a wrong clock shows a wrong count. Bind a measure such as Model Now = UTCNOW() to Reference time: if the device clock is running behind the model by more than 90 seconds, the visual corrects for it. A reference older than the device clock, which is normal for an Import model refreshed hours ago, is ignored on purpose so a stale refresh never rewinds a correct clock. Show Where The Clock Comes From in the Diagnostics card prints which clock is in use.
    I bound incident dates but the visual counts down, or shows Overdue, instead of counting up.
    The dates are on Deadline, which counts towards a date, so a past incident reads as overdue. Move the column to Event dates. With Mode on Auto (from the fields), bound event dates switch the visual to Days since; if Mode was set by hand to something else, set it to Days since (count up). With only one event bound there is no earlier gap to compare with, so the best streak is the current one.
    In high contrast mode the warning and overdue colours disappear.
    In Windows high contrast mode Power BI replaces report colours with the system palette, so colour alone cannot carry the state. Keep Show State Icon and Show State Label on in the States card and every row and card still says Due soon, Due today or Overdue in words. On the deadline board, Tab moves focus into the board, the up and down arrow keys move between rows, Enter or Space cross-filters the report to the focused row and Escape clears the selection.
    For developers & AI agents

    Add this visual programmatically.

    Use the GUID and data roles below to add Countdown to a Power BI report via PBIR or the Report Authoring agent. Full catalog (JSON)

    Visual GUID
    countdownTimer1F116F5EB2844AFDA3D921F4012C0E5C
    RoleDisplay nameKind
    targetDeadlineGroupingOrMeasure
    eventsEvent datesGrouping
    startStartGroupingOrMeasure
    holidaysNon-working datesGrouping
    labelCaptionGrouping
    referenceReference timeMeasure
    actualActualMeasure
    goalGoalMeasure
    tooltipsTooltipsMeasure
    Missing something?

    Tell us what is missing.

    A feature you need, a bug you hit, a visual that does not exist yet. Every message reaches the person who builds these visuals, and feature requests shape what ships next. We also build visuals to order.

    Also in the family