# Power BI Slicer Defaults : 
Show Actual Values Dynamically -
(Not Just 'Current Month / Period')

Have you encountered a situation where a Power BI report seems stuck in time, with slicers for eg: month failing to reflect the latest data? It’s a common frustration - users continue to see outdated selections, even though newer entries have arrived.

Say you shared a report in **May 2025**, with slicers set to `Year = 2025` and `Month = May`. Fast-forward to July or August, and unless someone manually updates the report or changes the default slicer values, it’ll still load with May selected. The report appears "stuck in time.".

This article introduces a clean, automated way to solve that. Using a PowerBI **Button Slicer** and a bit of simpler DAX, we’ll dynamically highlight the latest available month -without requiring manual updates or breaking best practices.

## Data Model

Here's a simplified look at the data model I'm using. Not every table is relevant for this walk-through, but the focus will be on the `Calendar` table (highlighted below in my model) and optionally Customer,Orders tables.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1750223540800/80b759d3-36f4-449e-afd4-b58420c1fe15.png align="center")

## Step 1: Create a Calculated Column -`Latest Month PH`

We start by adding a calculated column to the `Calendar` table called `Latest Month PH`. This column helps us identify the latest month dynamically and assign it a numeric value of `100`.(Assign a preferred number greater than 12 ,which is the total number of months) . Other months will keep their actual month number.

```markdown
Latest Month PH = 
VAR _maxym= CALCULATE(MAX('Calendar'[YearMonth]),all())
RETURN
IF('Calendar'[YearMonth]=_maxym,100, 'Calendar'[Month Number])
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1750225320577/e91c3eb5-58bb-4cfa-82f7-4dfadf653dec.png align="center")

## Step 2: Create a Second Calculated Column -`Latest Month`

Next, let’s create another calculated column(‘Latest Month’ Column) to show the month name. This will help us display a more user-friendly label in the visual.

```markdown
Latest Month = 
VAR _maxym= CALCULATE(MAX('Calendar'[YearMonth]),all())
RETURN
IF(
    'Calendar'[YearMonth]=_maxym,'Calendar'[Month Name] & "", 'Calendar'[Month Name])
```

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1750225448314/8ffbf578-c8b8-403c-b307-9f2e18ca14c4.png align="center")

## Step 3: Setting Up the ‘Button Slicer’

1. **Add a Button Slicer** to the canvas.
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1750225874627/b9c06c6c-04ac-4ea3-a2b8-8b8d08a07020.png align="center")

2. **Set the field** to `Latest Month PH`.
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1750226172258/e9046948-309b-4cff-b6ce-9c8b2b5086ed.png align="center")

3. Under ‘**Callout values’**, toggle on the **"Values"** option / Turn off **Values**. The Magic will happen after this.
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1750226339233/f98ccdfa-6158-4732-8e72-3acc32ce4b56.png align="center")

4. Still within ‘Callout values’, enable the **"Label"** and drag in the `Latest Month` column.Make sure you apply this setting to both the **Default** and **Selected** states if it doesn’t display in **‘Selected’** state.
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1750226590786/9649e26b-ca32-4ba9-b35e-a16170562f1d.png align="center")

## Step 4 : Testing it in action

To test this setup without waiting for a new calendar month to roll around, I created a pseudo column using `Month Number`& propagated using parameter This lets me simulate a new month and verify that the button updates accordingly.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1750231004674/b8b07b86-4721-49c5-b15c-bbfcb1f5d138.png align="center")

Lets change Month to Latest Month using a Parameter.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1750231064340/c56a53e2-78f4-4399-a3d7-8cc03d954401.png align="center")

At the time of writing, the latest month is **June**, and sure enough, the slicer now shows “June” as expected -automatically and without manual input.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1750231148134/904f3b47-d7e8-4adc-b272-0f2e0239116d.png align="center")

> ![](https://cdn.hashnode.com/res/hashnode/image/upload/v1750231491840/174d4948-b2bf-4e1f-bfbd-1fa090bed12d.gif align="center")

---

<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text">Previously, I used workarounds like placeholders such as "Current Month" or "Latest Month" to display the most recent month using DAX measures. While these approaches were functional, they often fell short of user expectations - especially when users preferred seeing the actual month name instead of a numeric value or generic label.</div>
</div>

> With this new approach, we achieve a dynamic and user-friendly experience by combining the flexibility of the button slicer with two lightweight calculated columns in the ‘Calendar’ table. Importantly, these additions do not significantly impact the model size, allowing us to maintain performance and follow best practices without unnecessarily bloating in the ‘Calendar’ dimension or Facts.

Feel free to share how you have tackled similar scenarios in the comments below

**Thank You for Reading !!**
