Stay Ahead, Stay ONMINE

How to Develop Complex DAX Expressions

At some point or another, any Power BI developer must write complex Dax expressions to analyze data. But nobody tells you how to do it. What’s the process for doing it? What is the best way to do it, and how supportive can a development process be? These are the questions I will answer here. Introduction  Sometimes my clients ask me how I came up with the solution for a specific measure in DAX. My answer is always that I follow a specific process to find a solution.  Sometimes, the process is not straightforward, and I must deviate or start from scratch when I  see that I have taken the wrong direction.  But the development process is always the same:  1. Understand the requirements.  2. Define the math to calculate the result.  3. Understand if the measure must work in any or one specific scenario. 4. Start with intermediary results and work my way step-by-step until I fully understand how it should work and can deliver the requested result.  5. Calculate the final result.  The third step is the most difficult.  Sometimes my client asks me to calculate a specific result in a particular scenario. But after I ask again, the answer is: Yes, I will also use it in other scenarios.  For example, some time ago, a client asked me to create some measures for a specific scenario in a report. I had to do it live during a workshop with the client’s team.  Days after I delivered the requested results, he asked me to create another report based on the same semantic model and logic we elaborated on during the workshop, but for a more flexible scenario.  The first set of measures was designed to work tightly with the first scenario, so I didn’t want to change them. Therefore, I created a new set of more generic measures.  Yes, this is a worst-case scenario, but it is something that can happen.  This was just an example of how important it is to take some time to thoroughly understand the needs and the possible future use cases for the requested measures.  Step 1: The requirements  For this piece, I take one measure from my previous article to calculate the linear extrapolation of my customer count.  The requirements are: Use the Customer Count Measure as the Basis Measure.  The user can select the year to analyze.  The user can select any other dimension in any Slicer.  The User will analyze the result over time per month.  The past Customer Count should be taken as the input values.  The YTD growth rate must be used as the basis for the result.  Based on the YTD growth rate, the Customer Count should be extrapolated to the end of  the year.  The YTD Customer Count and the Extrapolation must be shown on the same Line-Chart. The result should look like this for the year 2022:  Figure 1 – Requested result for the linear extrapolation of the Customer Count (Figure by the Author)  OK, let’s look at how I developed this measure. But before doing so, we must understand what the filter context is.  If you are already familiar with it, you can skip this section. Or you can read it anyway to ensure we are at the same level.  Interlude: The filter context  The filter context is the central concept of DAX.  When writing measures in a semantic model, whether in Power Bi, a fabric semantic model, or an analysis services semantic model, you must always understand the current filter context.  The filter context is:  The sum of all Filters which affect the result of a DAX expression.  Look at the following picture: Figure 2 – Ask yourself: What is the Filter Context of the marked cells? (Figure by the Author) Can you explain the Filter Context of the marked cells?  Now, look at the following picture:  Figure 3 – All the Filters that affect the Filter Context of the marked cells (Figure by the Author)  There are six filters, that affect the filter context of the marked cells for the two measures “Sum Retail Sales” and “Avg Retail Sales”:  The Store “Contoso Paris Store”  The City “Paris”  The ClassName “Economy”  The Month of April 2024  The Country “France”  The Manufacturer “Proseware Inc.”  The first three filters come from the visual. We can call them “Internal Filters”. They control how the Matrix-Visual can expand and how many details we can see.  The other filters are “External Filters”, which come from the Slicers or the Filter Pane in Power BI  and are controlled by the user.  The Power of DAX Measures lies in the possibility of extracting the value of the Filter Context and the capability of manipulating the Filter context.  We do this when writing DAX expressions: We manipulate the filter context. Step 2: Intermediary results  OK, now we are good to go.  First, I do not start with the Line-Visual, but with a Table or a Matrix Visual.  This is because it’s easier to see the result as a number than a line.  Even though a linear progression is visible only as a line.  However, the intermediary results are better readable in a Matrix.  If you are not familiar with working with Variables in DAX, I recommend reading this piece, where  I explain the concepts for Variables:  The next step is to define the Base Measure. This is the Measure we want to use to calculate the intended Result.  As we want to calculate the YTD result, we can use a YTD Measure for the Customer Count:  Online Customer Count YTD = VAR YTDDates = DATESYTD(‘Date'[Date]) RETURN CALCULATE( DISTINCTCOUNT(‘Online Sales'[CustomerKey]) ,YTDDates ) Now we must consider what to do with these intermediary results.  This means that we must define the arithmetic of the Measure.  For each month, I must calculate the last known Customer Count YTD.  This means, I always want to calculate 2,091 for each month. This is the last YTD Customer  Count for the year 2022.  Then, I want to divide this result by the last month with Sales, in this case 6, for June. Then multiply it by the current month number.  Therefore, the first intermediary result is to know when the last Sale was made. We must get the latest date in the Online Sales table for this.  According to the requirements, the User can select any year to analyze, and the result must be calculated monthly.  Therefore, the correct definition is: I must first know the month when the last sale was made for the selected year.  The Fact table contains a date and a Relationship to the Date table, which includes the month number (Column: [Month]). So, the first variable will be something like this:  Linear extrapolation Customer Count YTD trend = // Get the number of months since the start of the year VAR LastMonthWithData = MAXX(‘Online Sales’ ,RELATED(‘Date'[Month]) ) RETURN LastMonthWithData This is the result:  Figure 4 – Get the last month with Sales (Figure by the Author)  Hold on: We must always get the last month with sales. As it is now, we always get the same month as the Month of the current row.  This is because each row has the Filter Context set to each month.  Therefore, we must remove the Filter for the Month, while retaining the Year. We can do this with ALLEXCEPT():  Linear extrapolation Customer Count YTD trend = // Get the number of months since the start of the year VAR LastMonthWithData = CALCULATE(MAXX(‘Online Sales’ ,RELATED(‘Date'[Month]) ) ,ALLEXCEPT(‘Date’, ‘Date'[Year]) ) RETURN LastMonthWithData Now, the result looks much better: Figure 5 – Last month with Sales calculated for all months (Figure by the Author)  As we calculate the result for each month, we must know the month number of the current row (Month). We will reuse this as the factor for which we multiply the Average to get the linear extrapolation.  The next intermediary result is to get the Month number:  Linear extrapolation Customer Count YTD trend = // Get the number of months since the start of the year VAR LastMonthWithData = CALCULATE(MAXX(‘Online Sales’ ,RELATED(‘Date'[Month]) ) ,ALLEXCEPT(‘Date’, ‘Date'[Year]) ) // Get the last month // Is needed if we are looking at the data at the year, semester, or quarter level VAR MaxMonth = MAX(‘Date'[Month]) RETURN MaxMonth I can leave the first Variable in place and only use the MaxMonth variable after the return. The result shows the month number per month: Figure 6 – Get the current month number per row (Figure by the Author)  According to the definition formulated before, we must get the last Customer Count YTD for the latest month with Sales.  I can do this with the following Expression:  Linear extrapolation Customer Count YTD trend = // Get the number of months since the start of the year VAR LastMonthWithData = CALCULATE(MAXX(‘Online Sales’ ,RELATED(‘Date'[Month]) ) ,ALLEXCEPT(‘Date’, ‘Date'[Year]) ) // Get the last month // Is needed if we are looking at the data at the year, semester, or quarter level VAR MaxMonth = MAX(‘Date'[Month]) // Get the Customer Count YTD VAR LastCustomerCountYTD = CALCULATE([Online Customer Count YTD] ,ALLEXCEPT(‘Date’, ‘Date'[Year]) ,’Date'[Month] = LastMonthWithData ) RETURN LastCustomerCountYTD As expected, the result shows 2,091 for each month: Figure 7 – Calculating the latest Customer Count YTD for each month (Figure by the Author)  You can see why I start with a table or a Matrix when developing complex Measures.  Now, imagine that one intermediary result is a date or a text.  Showing such a result in a line visual will not be practical.  We are ready to calculate the final result according to the mathematical definition above.  Step 3: The final result  We have two ways to calculate the result:  1. Write the expression after the RETURN statement.  2. Create a new Variable “Result” and use this Variable after the RETURN statement. The final Expression is this:  (LastCustomerCountYTD / LastMonthWithData) * MaxMonth The first Variant looks like this:  Linear extrapolation Customer Count YTD trend = // Get the number of months since the start of the year VAR LastMonthWithData = CALCULATE(MAXX(‘Online Sales’ ,RELATED(‘Date'[Month]) ) ,ALLEXCEPT(‘Date’, ‘Date'[Year]) ) // Get the last month // Is needed if we are looking at the data at the year, semester, or quarter level VAR MaxMonth = MAX(‘Date'[Month]) // Get the Customer Count YTD VAR LastCustomerCountYTD = CALCULATE([Online Customer Count YTD] ,ALLEXCEPT(‘Date’, ‘Date'[Year]) ,’Date'[Month] = LastMonthWithData ) RETURN // Calculating the extrapolation (LastCustomerCountYTD / LastMonthWithData) * MaxMonth This is the second Variant:  Linear extrapolation Customer Count YTD trend = // Get the number of months since the start of the year VAR LastMonthWithData = CALCULATE(MAXX(‘Online Sales’ ,RELATED(‘Date'[Month]) ) ,ALLEXCEPT(‘Date’, ‘Date'[Year]) ) // Get the last month // Is needed if we are looking at the data at the year, semester, or quarter level VAR MaxMonth = MAX(‘Date'[Month]) // Get the Customer Count YTD VAR LastCustomerCountYTD = CALCULATE([Online Customer Count YTD] ,ALLEXCEPT(‘Date’, ‘Date'[Year]) ,’Date'[Month] = LastMonthWithData ) // Calculating the extrapolation VAR Result = (LastCustomerCountYTD / LastMonthWithData) * MaxMonth RETURN Result The result is the same.  The second variant allows us to quickly switch back to the Intermediary results if the final result  is incorrect without needing to set the expression after the RETURN statement as a comment.  It simply makes life easier.  But it’s up to you which variant you like more.  The result is this: Figure 8 – Final result in a table (Figure by the Author)  When converting this table to a Line Visual, we get the same result as in the first figure. The last step will be to set the line as a Dashed line, to get the needed visualization. Figure 9 – Set the line for the extrapolation as a dashed line (Figure by the Author)  Complex calculated columns  The process is the same when writing complex DAX expressions for calculated columns. The difference is that we can see the result in the Table View of Power BI Desktop.  Be aware that when calculated columns are calculated, the results are physically stored in the table when you press Enter.  The results of Measures are not stored in the Model. They are calculated on the fly in the Visualizations.  Another difference is that we can leverage Context Transition to get our result when we need it to depend on other rows in the table.  Read this piece to learn more about this fascinating topic:  Conclusion  The development process for complex expressions always follows the same steps:  1. Understand the requirements – Ask if something is unclear.  2. Define the math for the results.  3. Start with intermediary results and understand the results.  4. Build on the intermediary results one by one – Do not try to write all in one step. 5. Decide where to write the expression for the final result.  Following such a process can save you the day, as you don’t need to write everything in one step.  Moreover, getting these intermediary results allows you to understand what’s happening and explore the Filter Context.  This will help you learn DAX more efficiently and build even more complex stuff.  But, be aware: Even though a certain level of complexity is needed, a good developer will keep it as simple as possible, while maintaining the least amount of complexity.  References  Here is the article mentioned at the beginning of this piece, to calculate the linear interpolation. Like in my previous articles, I use the Contoso sample dataset. You can download the  ContosoRetailDW Dataset for free from Microsoft here. The Contoso Data can be freely used under the MIT License, as described here. I changed the dataset to shift the data to contemporary dates.

At some point or another, any Power BI developer must write complex Dax expressions to analyze data. But nobody tells you how to do it. What’s the process for doing it? What is the best way to do it, and how supportive can a development process be? These are the questions I will answer here.

Introduction 

Sometimes my clients ask me how I came up with the solution for a specific measure in DAX. My answer is always that I follow a specific process to find a solution. 

Sometimes, the process is not straightforward, and I must deviate or start from scratch when I  see that I have taken the wrong direction. 

But the development process is always the same: 

1. Understand the requirements. 

2. Define the math to calculate the result. 

3. Understand if the measure must work in any or one specific scenario.

4. Start with intermediary results and work my way step-by-step until I fully understand how it should work and can deliver the requested result. 

5. Calculate the final result. 

The third step is the most difficult. 

Sometimes my client asks me to calculate a specific result in a particular scenario. But after I ask again, the answer is: Yes, I will also use it in other scenarios. 

For example, some time ago, a client asked me to create some measures for a specific scenario in a report. I had to do it live during a workshop with the client’s team. 

Days after I delivered the requested results, he asked me to create another report based on the same semantic model and logic we elaborated on during the workshop, but for a more flexible scenario. 

The first set of measures was designed to work tightly with the first scenario, so I didn’t want to change them. Therefore, I created a new set of more generic measures. 

Yes, this is a worst-case scenario, but it is something that can happen. 

This was just an example of how important it is to take some time to thoroughly understand the needs and the possible future use cases for the requested measures. 

Step 1: The requirements 

For this piece, I take one measure from my previous article to calculate the linear extrapolation of my customer count. 

The requirements are:

  • Use the Customer Count Measure as the Basis Measure. 
  • The user can select the year to analyze. 
  • The user can select any other dimension in any Slicer. 
  • The User will analyze the result over time per month. 
  • The past Customer Count should be taken as the input values. 
  • The YTD growth rate must be used as the basis for the result. 
  • Based on the YTD growth rate, the Customer Count should be extrapolated to the end of  the year. 
  • The YTD Customer Count and the Extrapolation must be shown on the same Line-Chart.

The result should look like this for the year 2022: 

Figure 1 – Requested result for the linear extrapolation of the Customer Count (Figure by the Author) 

OK, let’s look at how I developed this measure.

But before doing so, we must understand what the filter context is. 

If you are already familiar with it, you can skip this section. Or you can read it anyway to ensure we are at the same level. 

Interlude: The filter context 

The filter context is the central concept of DAX. 

When writing measures in a semantic model, whether in Power Bi, a fabric semantic model, or an analysis services semantic model, you must always understand the current filter context. 

The filter context is: 

The sum of all Filters which affect the result of a DAX expression. 

Look at the following picture:

Figure 2 – Ask yourself: What is the Filter Context of the marked cells? (Figure by the Author) Can you explain the Filter Context of the marked cells? 

Now, look at the following picture: 

Figure 3 – All the Filters that affect the Filter Context of the marked cells (Figure by the Author) 

There are six filters, that affect the filter context of the marked cells for the two measures “Sum Retail Sales” and “Avg Retail Sales”: 

  • The Store “Contoso Paris Store” 
  • The City “Paris” 
  • The ClassName “Economy” 
  • The Month of April 2024 
  • The Country “France” 
  • The Manufacturer “Proseware Inc.” 

The first three filters come from the visual. We can call them “Internal Filters”. They control how the Matrix-Visual can expand and how many details we can see. 

The other filters are “External Filters”, which come from the Slicers or the Filter Pane in Power BI  and are controlled by the user. 

The Power of DAX Measures lies in the possibility of extracting the value of the Filter Context and the capability of manipulating the Filter context. 

We do this when writing DAX expressions: We manipulate the filter context.

Step 2: Intermediary results 

OK, now we are good to go. 

First, I do not start with the Line-Visual, but with a Table or a Matrix Visual. 

This is because it’s easier to see the result as a number than a line. 

Even though a linear progression is visible only as a line. 

However, the intermediary results are better readable in a Matrix. 

If you are not familiar with working with Variables in DAX, I recommend reading this piece, where  I explain the concepts for Variables: 

The next step is to define the Base Measure. This is the Measure we want to use to calculate the intended Result. 

As we want to calculate the YTD result, we can use a YTD Measure for the Customer Count: 

Online Customer Count YTD =
VAR YTDDates = DATESYTD('Date'[Date])
RETURN
CALCULATE(
DISTINCTCOUNT('Online Sales'[CustomerKey])
,YTDDates
)

Now we must consider what to do with these intermediary results. 

This means that we must define the arithmetic of the Measure. 

For each month, I must calculate the last known Customer Count YTD. 

This means, I always want to calculate 2,091 for each month. This is the last YTD Customer  Count for the year 2022. 

Then, I want to divide this result by the last month with Sales, in this case 6, for June. Then multiply it by the current month number. 

Therefore, the first intermediary result is to know when the last Sale was made. We must get the latest date in the Online Sales table for this. 

According to the requirements, the User can select any year to analyze, and the result must be calculated monthly. 

Therefore, the correct definition is: I must first know the month when the last sale was made for the selected year. 

The Fact table contains a date and a Relationship to the Date table, which includes the month number (Column: [Month]).

So, the first variable will be something like this: 

Linear extrapolation Customer Count YTD trend =
// Get the number of months since the start of the year
VAR LastMonthWithData = MAXX('Online Sales'

,RELATED('Date'[Month])
)

RETURN
LastMonthWithData

This is the result: 

Figure 4 – Get the last month with Sales (Figure by the Author) 

Hold on: We must always get the last month with sales. As it is now, we always get the same month as the Month of the current row. 

This is because each row has the Filter Context set to each month. 

Therefore, we must remove the Filter for the Month, while retaining the Year. We can do this with ALLEXCEPT()

Linear extrapolation Customer Count YTD trend =
// Get the number of months since the start of the year
VAR LastMonthWithData = CALCULATE(MAXX('Online Sales'
,RELATED('Date'[Month])
)
,ALLEXCEPT('Date', 'Date'[Year])
)

RETURN
LastMonthWithData

Now, the result looks much better:

Figure 5 – Last month with Sales calculated for all months (Figure by the Author) 

As we calculate the result for each month, we must know the month number of the current row (Month). We will reuse this as the factor for which we multiply the Average to get the linear extrapolation. 

The next intermediary result is to get the Month number: 

Linear extrapolation Customer Count YTD trend =
// Get the number of months since the start of the year
VAR LastMonthWithData = CALCULATE(MAXX('Online Sales'
,RELATED('Date'[Month])
)
,ALLEXCEPT('Date', 'Date'[Year])
)
// Get the last month
// Is needed if we are looking at the data at the year, semester, or
quarter level
VAR MaxMonth = MAX('Date'[Month])
RETURN
MaxMonth

I can leave the first Variable in place and only use the MaxMonth variable after the return. The result shows the month number per month:

Figure 6 – Get the current month number per row (Figure by the Author) 

According to the definition formulated before, we must get the last Customer Count YTD for the latest month with Sales. 

I can do this with the following Expression: 

Linear extrapolation Customer Count YTD trend =
// Get the number of months since the start of the year
VAR LastMonthWithData = CALCULATE(MAXX('Online Sales'
,RELATED('Date'[Month])
)
,ALLEXCEPT('Date', 'Date'[Year])
)
// Get the last month
// Is needed if we are looking at the data at the year, semester, or
quarter level
VAR MaxMonth = MAX('Date'[Month])
// Get the Customer Count YTD
VAR LastCustomerCountYTD = CALCULATE([Online Customer Count YTD]
,ALLEXCEPT('Date', 'Date'[Year])
,'Date'[Month] = LastMonthWithData
)

RETURN
LastCustomerCountYTD

As expected, the result shows 2,091 for each month:

Figure 7 – Calculating the latest Customer Count YTD for each month (Figure by the Author) 

You can see why I start with a table or a Matrix when developing complex Measures. 

Now, imagine that one intermediary result is a date or a text. 

Showing such a result in a line visual will not be practical. 

We are ready to calculate the final result according to the mathematical definition above. 

Step 3: The final result 

We have two ways to calculate the result: 

1. Write the expression after the RETURN statement. 

2. Create a new Variable “Result” and use this Variable after the RETURN statement. The final Expression is this: 

(LastCustomerCountYTD / LastMonthWithData) * MaxMonth

The first Variant looks like this: 

Linear extrapolation Customer Count YTD trend =
// Get the number of months since the start of the year
VAR LastMonthWithData = CALCULATE(MAXX('Online Sales'
,RELATED('Date'[Month])

)

,ALLEXCEPT('Date', 'Date'[Year])

)
// Get the last month
// Is needed if we are looking at the data at the year, semester, or
quarter level
VAR MaxMonth = MAX('Date'[Month])
// Get the Customer Count YTD
VAR LastCustomerCountYTD = CALCULATE([Online Customer Count YTD]
,ALLEXCEPT('Date', 'Date'[Year])
,'Date'[Month] = LastMonthWithData
)

RETURN
// Calculating the extrapolation
(LastCustomerCountYTD / LastMonthWithData) * MaxMonth

This is the second Variant: 

Linear extrapolation Customer Count YTD trend =
// Get the number of months since the start of the year
VAR LastMonthWithData = CALCULATE(MAXX('Online Sales'
,RELATED('Date'[Month])
)
,ALLEXCEPT('Date', 'Date'[Year])
)
// Get the last month
// Is needed if we are looking at the data at the year, semester, or
quarter level
VAR MaxMonth = MAX('Date'[Month])
// Get the Customer Count YTD
VAR LastCustomerCountYTD = CALCULATE([Online Customer Count YTD]
,ALLEXCEPT('Date', 'Date'[Year])
,'Date'[Month] = LastMonthWithData
)
// Calculating the extrapolation
VAR Result =
(LastCustomerCountYTD / LastMonthWithData) * MaxMonth
RETURN
Result

The result is the same. 

The second variant allows us to quickly switch back to the Intermediary results if the final result  is incorrect without needing to set the expression after the RETURN statement as a comment. 

It simply makes life easier. 

But it’s up to you which variant you like more. 

The result is this:

Figure 8 – Final result in a table (Figure by the Author) 

When converting this table to a Line Visual, we get the same result as in the first figure. The last step will be to set the line as a Dashed line, to get the needed visualization.

Figure 9 – Set the line for the extrapolation as a dashed line (Figure by the Author) 

Complex calculated columns 

The process is the same when writing complex DAX expressions for calculated columns. The difference is that we can see the result in the Table View of Power BI Desktop. 

Be aware that when calculated columns are calculated, the results are physically stored in the table when you press Enter. 

The results of Measures are not stored in the Model. They are calculated on the fly in the Visualizations. 

Another difference is that we can leverage Context Transition to get our result when we need it to depend on other rows in the table. 

Read this piece to learn more about this fascinating topic: 

Conclusion 

The development process for complex expressions always follows the same steps: 

1. Understand the requirements – Ask if something is unclear. 

2. Define the math for the results. 

3. Start with intermediary results and understand the results. 

4. Build on the intermediary results one by one – Do not try to write all in one step.

5. Decide where to write the expression for the final result. 

Following such a process can save you the day, as you don’t need to write everything in one step. 

Moreover, getting these intermediary results allows you to understand what’s happening and explore the Filter Context. 

This will help you learn DAX more efficiently and build even more complex stuff. 

But, be aware: Even though a certain level of complexity is needed, a good developer will keep it as simple as possible, while maintaining the least amount of complexity. 

References 

Here is the article mentioned at the beginning of this piece, to calculate the linear interpolation.

Like in my previous articles, I use the Contoso sample dataset. You can download the  ContosoRetailDW Dataset for free from Microsoft here.

The Contoso Data can be freely used under the MIT License, as described here. I changed the dataset to shift the data to contemporary dates.

Shape
Shape
Stay Ahead

Explore More Insights

Stay ahead with more perspectives on cutting-edge power, infrastructure, energy,  bitcoin and AI solutions. Explore these articles to uncover strategies and insights shaping the future of industries.

Shape

Altera targets low-latency AI edge applications with new FPGA products

Support for Agilex 3 and other Agilex product lines is available through Altera’s free Quartus software suite. Quartus is a design software suite for programmable logic devices. It allows engineers to design, analyze, optimize, and program Intel FPGAs, CPLDs, and SoCs using system-level design techniques and advanced place-and-route algorithms. For

Read More »

Observe links end-user experience with back-end troubleshooting

Frontend Observability uses a capability called Browser Real User Monitoring (RUM) to enable IT and developer teams to quickly identify and diagnose performance issues across browsers, devices, and locations. For instance, RUM identifies anomalies in page load times, core web vitals, and JavaScript or HTTP errors. RUM also provides developers

Read More »

ServiceNow to pay $2.85B for Moveworks’ AI tools

ServiceNow and Moveworks will deliver a unified, end‑to‑end search and self‑service experience for all employee requestors across every workflow, according to ServiceNow. A majority of Moveworks’ current customer deployments already use ServiceNow in their environments to access enterprise AI, data, and workflows. ServiceNow said this acquisition will build upon the

Read More »

Aberdeen Headquartered Company Confirms Intention to Reduce Jobs

A spokesperson for Aberdeen-headquartered Well-Safe Solutions has confirmed to Rigzone that the company intends to reduce jobs. “The knock-on effects of the Energy Profits Levy (EPL) have seen spend delayed on decommissioning across the industry, which is affecting both our rig and engineering activity,” the spokesperson told Rigzone.  “It’s with regret that Well-Safe Solutions confirms its intention to reduce positions aboard the Well-Safe Guardian while it is on standby. We must also resize our onshore team to reflect the reduction in activity throughout 2025,” the spokesperson added. The Well-Safe spokesperson said the company currently going through a collective consultation process “exploring options to safeguard as many colleagues as possible and are supporting them through this challenging time”. “It is proposed that 45 positions may be affected onshore. With the Well-Safe Guardian on standby, we will retain 34 positions onboard in readiness for our return to a client project,” the spokesperson added. “This is not a position we expected to find ourselves in, but we must make this hard decision now to protect the business ahead of an expected increase in global project availability for 2026 and beyond,” the spokesperson continued. The Well-Safe spokesperson told Rigzone that the Well-Safe Defender and Well-Safe Protector are not affected by the current consultations. “Well-Safe Solutions is continuing to deploy its personnel and assets onto relevant projects as we help our clients to realise their energy transition objectives,” the spokesperson told Rigzone. The EPL is an additional temporary tax on a company’s ring-fence profits, an oil and gas price mechanism consultation posted on the UK government website on March 5 states, highlighting that the measure was introduced in May 2022. “The levy was implemented in response to extraordinary profits made by oil and gas companies driven by global events, including resurgent demand for energy post Covid-19 and

Read More »

Petrobras Achieves Successful Feedstock Co-Processing Test at Riograndense

An industrial-scale co-processing experiment has been successfully conducted at the Riograndense Refinery, owned by Petrobras, Ultra and Braskem. The test used 5 percent pyrolysis bio-oil (derived from non-food biomass) and fossil feedstock. The co-processing converted the bio-oil into fuel gas, LPG, and components for gasoline and marine fuel with renewable content, Petrobras said in a media release. Petrobras provided technology for the test at RPR’s catalytic cracking unit, which lasted seven days. A specialized team from Petrobras and Riograndense supported all stages of the bio-oil supply process, Petrobras said. In the experiment, the FCC unit was modified to allow for the simultaneous processing of bio-oil and fossil feedstock. The catalyst used in the reactor is part of the ReNewFCC series, created through a collaboration with Fábrica Carioca de Catalisadores (FCC S.A.), a joint venture between Petrobras and Ketjen, Petrobras said. The renewable component was provided by the Vallourec-Florestal unit. The bio-oil produced is ISCC PLUS-certified and is derived from the condensation of vapors generated during the production of eucalyptus charcoal, which contributes to reducing GHG emissions, according to Petrobras. The test is part of the ongoing efforts to transform RPR into a biorefinery in the coming years, Petrobras said. “In line with our commitment to leading a just energy transition in Brazil, the Riograndense Refinery has the potential to become the world’s first refinery to produce continuously 100 percent renewable products. It will become a biorefinery dedicated to producing fuels exclusively from renewable materials,” Magda Chambriard, Petrobras’ CEO, said. In late 2023, RPR became the first in the world to process 100 percent vegetable oil in an FCC unit, producing fuels and chemical feedstocks like propylene and bio-aromatics (benzene, toluene, and xylenes) using Petrobras’ CENPES technology, according to the company. “The recent test represents a significant breakthrough for global biorefining,

Read More »

Ukraine Says Its Drones Hit Major Refinery in Moscow

Ukraine claimed it hit a major oil refinery that supplies Moscow and its airports, as part of a record drone barrage ahead of talks between Kyiv and the US over a potential ceasefire. Drones hit the Moscow refinery overnight, Ukraine’s General Staff said in a Telegram post. In Russia, the regional unit of emergencies ministry said in a Telegram statement that debris of a UAV with an unexploded warhead was found in Moscow’s district of Kapotnya, where the refinery is located, and was “successfully neutralized.” Gazprom Neft PJSC, which owns the refinery, said the facility was operating normally, according to a statement from its press office. It wasn’t possible to independently verify Ukraine’s claims or assess any damage to the refinery. Ukraine launched a record number of drones on Russia overnight, with air defenses shooting down 337 drones including dozens that targeted Moscow, Russian officials said early Tuesday. Top officials from the US and Ukraine began talks in Saudi Arabia on Tuesday to explore the potential for reaching a ceasefire. The Moscow facility is one of Russia’s largest refineries, with design crude-processing capacity of about 257,000 barrels a day. It supplies more than a third of the fuel market in the capital region, including Moscow airports, according to its website. Ukrainian drones hit the facility last year, forcing it to briefly suspend operations at one of the processing units in September.  Kyiv has intensified attacks on Russia’s energy infrastructure targeting refineries and oil-pumping stations almost on a daily basis as the Kremlin’s war against Ukraine has entered its fourth year. Repeated drone attacks on a key industry aim to curtail Russia’s ability to send fuel to the front line and limit Moscow’s revenue from oil sales.  The overnight strike also led to explosions at an oil-product pipeline operation control station

Read More »

Genel Enters Block 54 in Oman

Genel Energy plc has signed agreements to enter into the Block 54 exploration and production sharing agreement (EPSA) in the Sultanate of Oman. The company has secured a 40 percent participating interest in the license, in which OQ Exploration and Production SAOG (OQEP) will hold operatorship and a 60 percent participating interest. Block 54 (the Karawan Concession) is on the eastern side of the South Oman Salt Basin and immediately adjacent to existing production, Genel said in a media release. The block spans 5,632 square kilometers (2,174.5 square miles) within the Al Wusta Governorate, approximately 600 kilometers (372 miles) south of Muscat, and is largely underexplored, Genel said. In the upcoming three years, Genel and OQEP anticipate putting in around $25 million in total direct expenses for the initial phase of the EPSA, which includes fulfilling the minimum work commitment that entails evaluating existing wells, drilling, and acquiring 3D seismic data. Genel added it will cover a portion of OQEP’s 60 percent stake during the initial phase. OQEP, a subsidiary of OQ SAOC, is Oman’s third-largest producer and is publicly listed on the Muscat Stock Exchange, having recently completed an initial public offering, Genel noted. “We identified Oman some time ago as a preferred jurisdiction for geographical diversification, given its stable regulatory environment and the significant steps it has taken in recent years to set its oil and gas sector up for an exciting future. It is therefore the ideal country for Genel to begin its strategic diversification, expand its portfolio, and invest capital”, Paul Weir, Chief Executive of Genel, said. “We are delighted to be partnering with OQEP and the Ministry of Energy and Minerals of the Sultanate of Oman on this exciting opportunity and look forward to working together to unlock and expand this contingent resource”. To contact

Read More »

Oil tanker collision: Cargo ship captain arrested

The captain of the cargo ship that collided with an oil tanker in UK waters has been arrested. The US-flagged Stena Immaculate was anchored when it was hit by the Solong cargo vessel at around 9:48 am on Monday morning. At the time of the collision, the cargo vessel was travelling at around 18 miles per hour, or 16 knots. This sparked a blaze that raged into Tuesday and prompted a rescue attempt that saw more than 30 casualties brought ashore, although there is only one person remaining in hospital. However, one crew member was reported missing, and after search attempts, HM Coatsguard called off rescue attempts. Transport Minister Mike Kane said in the house of commons that the seafarer is presumed dead. Following the incident, Humberside Police said the 59-year-old captain of the Solong had been arrested on suspicion of gross negligence manslaughter following searches for his missing crew member. Although smoke continues to spew from the ships off the coast of Yorkshire, UK government transport secretary Heidi Alexander has said both vessels are set to stay afloat. Firefighting vessels and lifeboats were dispatched to the scene soon after the collision, and both vessels caught ablaze in the Humber Estuary. © UGC/UNPIXSNORTH SEA – A major rescue operation was launched after an oil tanker and a cargo vessel collided off the East Yorkshire coast. Image: UGC/UNPIXS One US crewman onboard the Immaculate at the time of the collision said that “a massive ship came from out of the blue,” as he recounted the incident. The tanker was thought to be carrying jet fuel for the US military while the cargo ship is believed to have been transporting sodium cyanide. Concerns have been raised regarding the environmental impact this incident will have in the region. The owner of the Immaculate

Read More »

Oil Prices Rebound as Market Metrics Signal Oversold Conditions

Oil edged up as internal market metrics flashed signs that recent declines were overdone, overshadowing the prospect of a temporary truce in Ukraine. West Texas Intermediate rose 0.3% to top $66 a barrel, recovering from the lowest closing price in six months. Ukraine said it’s ready to accept a US proposal for a 30-day truce in Russia’s war, raising expectations that Moscow’s crude may again flow freely in the near future. Oil held its ground Tuesday even as fresh trade salvos from US President Donald Trump threatened to prolong a plunge in risk assets. Despite the weakening economic outlook weighing on futures prices in recent weeks, WTI’s prompt spread — a key indicator of near-term supply and demand balances — has held steady in a bullish, backwardated structure. That’s a sign that the growth scare for crude isn’t as severe as for other assets, said Jon Byrne, an analyst at Strategas Securities. “Crude could be on the cusp of decoupling from other risk assets during this selloff,” Byrne said. Also supporting crude prices, US Energy Secretary Chris Wright said on Monday that the Trump administration was prepared to enforce US sanctions on Iranian oil production, before clawing back gains.   Oil has fallen almost a fifth from a high in mid-January as Trump’s chaotic rollout of tariff hikes and push to slash federal spending darken the economic outlook in the biggest producer and consumer of crude. Other bearish factors include OPEC+ plans to add supply and weakening demand in China. At a major industry conference in Houston, executives from some of the world’s top oil and gas producers — including Chevron Corp., Shell Plc and Saudi Aramco — offered full-throated support for President Trump’s energy-dominance agenda at the gathering.    “Given how light positioning is, it doesn’t take much to

Read More »

Podcast: On the Frontier of Modular Edge AI Data Centers with Flexnode’s Andrew Lindsey

The modular data center industry is undergoing a seismic shift in the age of AI, and few are as deeply embedded in this transformation as Andrew Lindsey, Co-Founder and CEO of Flexnode. In a recent episode of the Data Center Frontier Show podcast, Lindsey joined Editor-in-Chief Matt Vincent and Senior Editor David Chernicoff to discuss the evolution of modular data centers, the growing demand for high-density liquid-cooled solutions, and the industry factors driving this momentum. A Background Rooted in Innovation Lindsey’s career has been defined by the intersection of technology and the built environment. Prior to launching Flexnode, he worked at Alpha Corporation, a top 100 engineering and construction management firm founded by his father in 1979. His early career involved spearheading technology adoption within the firm, with a focus on high-security infrastructure for both government and private clients. Recognizing a massive opportunity in the data center space, Lindsey saw a need for an innovative approach to infrastructure deployment. “The construction industry is relatively uninnovative,” he explained, citing a McKinsey study that ranked construction as the second least-digitized industry—just above fishing and wildlife, which remains deliberately undigitized. Given the billions of square feet of data center infrastructure required in a relatively short timeframe, Lindsey set out to streamline and modernize the process. Founded four years ago, Flexnode delivers modular data centers with a fully integrated approach, handling everything from site selection to design, engineering, manufacturing, deployment, operations, and even end-of-life decommissioning. Their core mission is to provide an “easy button” for high-density computing solutions, including cloud and dedicated GPU infrastructure, allowing faster and more efficient deployment of modular data centers. The Rising Momentum for Modular Data Centers As Vincent noted, Data Center Frontier has closely tracked the increasing traction of modular infrastructure. Lindsey has been at the forefront of this

Read More »

Last Energy to Deploy 30 Microreactors in Texas for Data Centers

As the demand for data center power surges in Texas, nuclear startup Last Energy has now announced plans to build 30 microreactors in the state’s Haskell County near the Dallas-Fort Worth Metroplex. The reactors will serve a growing customer base of data center operators in the region looking for reliable, carbon-free energy. The plan marks Last Energy’s largest project to date and a significant step in advancing modular nuclear power as a viable solution for high-density computing infrastructure. Meeting the Looming Power Demands of Texas Data Centers Texas is already home to over 340 data centers, with significant expansion underway. Google is increasing its data center footprint in Dallas, while OpenAI’s Stargate has announced plans for a new facility in Abilene, just an hour south of Last Energy’s planned site. The company notes the Dallas-Fort Worth metro area alone is projected to require an additional 43 gigawatts of power in the coming years, far surpassing current grid capacity. To help remediate, Last Energy has secured a 200+ acre site in Haskell County, approximately three and a half hours west of Dallas. The company has also filed for a grid connection with ERCOT, with plans to deliver power via a mix of private wire and grid transmission. Additionally, Last Energy has begun pre-application engagement with the U.S. Nuclear Regulatory Commission (NRC) for an Early Site Permit, a key step in securing regulatory approval. According to Last Energy CEO Bret Kugelmass, the company’s modular approach is designed to bring nuclear energy online faster than traditional projects. “Nuclear power is the most effective way to meet Texas’ growing energy demand, but it needs to be deployed faster and at scale,” Kugelmass said. “Our microreactors are designed to be plug-and-play, enabling data center operators to bypass the constraints of an overloaded grid.” Scaling Nuclear for

Read More »

Data Center Jobs: Engineering and Technician Jobs Available in Major Markets

Each month Data Center Frontier, in partnership with Pkaza, posts some of the hottest data center career opportunities in the market. Here’s a look at some of the latest data center jobs posted on the Data Center Frontier jobs board, powered by Pkaza Critical Facilities Recruiting.  Data Center Facility Engineer (Night Shift Available) Ashburn, VAThis position is also available in: Tacoma, WA (Nights), Days/Nights: Needham, MA and New York City, NY. This opportunity is working directly with a leading mission-critical data center developer / wholesaler / colo provider. This firm provides data center solutions custom-fit to the requirements of their client’s mission-critical operational facilities. They provide reliability of mission-critical facilities for many of the world’s largest organizations facilities supporting enterprise clients and hyperscale companies. This opportunity provides a career-growth minded role with exciting projects with leading-edge technology and innovation as well as competitive salaries and benefits. Electrical Commissioning Engineer New Albany, OHThis traveling position is also available in: Somerset, NJ; Boydton, VA; Richmond, VA; Ashburn, VA; Charlotte, NC; Atlanta, GA; Hampton, GA; Fayetteville, GA; Des Moines, IA; San Jose, CA; Portland, OR; St Louis, MO; Phoenix, AZ;  Dallas, TX;  Chicago, IL; or Toronto, ON. *** ALSO looking for a LEAD EE and ME CxA agents.*** Our client is an engineering design and commissioning company that has a national footprint and specializes in MEP critical facilities design. They provide design, commissioning, consulting and management expertise in the critical facilities space. They have a mindset to provide reliability, energy efficiency, sustainable design and LEED expertise when providing these consulting services for enterprise, colocation and hyperscale companies. This career-growth minded opportunity offers exciting projects with leading-edge technology and innovation as well as competitive salaries and benefits. Switchgear Field Service Technician – Critical Facilities Nationwide TravelThis position is also available in: Charlotte, NC; Atlanta, GA; Dallas,

Read More »

Amid Shifting Regional Data Center Policies, Iron Mountain and DC Blox Both Expand in Virginia’s Henrico County

The dynamic landscape of data center developments in Maryland and Virginia exemplify the intricate balance between fostering technological growth and addressing community and environmental concerns. Data center developers in this region find themselves both in the crosshairs of groups worried about the environment and other groups looking to drive economic growth. In some cases, the groups are different components of the same organizations, such as local governments. For data center development, meeting the needs of these competing interests often means walking a none-too-stable tightrope. Rapid Government Action Encourages Growth In May 2024, Maryland demonstrated its commitment to attracting data center investments by enacting the Critical Infrastructure Streamlining Act. This legislation provides a clear framework for the use of emergency backup power generation, addressing previous regulatory challenges that a few months earlier had hindered projects like Aligned Data Centers’ proposed 264-megawatt campus in Frederick County, causing Aligned to pull out of the project. However, just days after the Act was signed by the governor, Aligned reiterated its plans to move forward with development in Maryland.  With the Quantum Loop and the related data center development making Frederick County a focal point for a balanced approach, the industry is paying careful attention to the pace of development and the relations between developers, communities and the government. In September of 2024, Frederick County Executive Jessica Fitzwater revealed draft legislation that would potentially restrict where in the county data centers could be built. The legislation was based on information found in the Frederick County Data Centers Workgroup’s final report. Those bills would update existing regulations and create a floating zone for Critical Digital Infrastructure and place specific requirements on siting data centers. Statewide, a cautious approach to environmental and community impacts statewide has been deemed important. In January 2025, legislators introduced SB116,  a bill

Read More »

New Reports Show How AI, Power, and Investment Trends Are Reshaping the Data Center Landscape

Today we provide a comprehensive roundup of the latest industry analyst reports from CBRE, PwC, and Synergy Research, offering a data-driven perspective on the state of the North American data center market.  To wit, CBRE’s latest findings highlight record-breaking growth in supply, soaring colocation pricing, and mounting power constraints shaping site selection. For its part, PwC’s analysis underscores the sector’s broader economic impact, quantifying its trillion-dollar contribution to GDP, rapid job growth, and surging tax revenues.  Meanwhile, the latest industry analysis from Synergy Research details the acceleration of cloud spending, AI’s role in fueling infrastructure demand, and an unprecedented surge in data center mergers and acquisitions.  Together, these reports paint a picture of an industry at an inflection point—balancing explosive expansion with evolving challenges in power availability, cost pressures, and infrastructure investment. Let’s examine them. CBRE: Surging Demand Fuels Record Data Center Expansion CBRE says the North American data center sector is scaling at an unprecedented pace, driven by unrelenting demand from artificial intelligence (AI), hyperscale, and cloud service providers. The latest North America Data Center Trends H2 2024 report from CBRE reveals that total supply across primary markets surged by 34% year-over-year to 6,922.6 megawatts (MW), outpacing the 26% growth recorded in 2023. This accelerating expansion has triggered record-breaking construction activity and intensified competition for available capacity. Market Momentum: Scaling Amid Power Constraints According to CBRE, data center construction activity reached historic levels, with 6,350 MW under development at the close of 2024—more than doubling the 3,077.8 MW recorded a year prior. Yet, the report finds the surge in development is being met with significant hurdles, including power constraints and supply chain challenges affecting critical electrical infrastructure. As a result, the vacancy rate across primary markets has plummeted to an all-time low of 1.9%, with only a handful of sites

Read More »

Minnesota PUC Says No to Amazon’s Bid to Fast-Track 250 Diesel Generators for Data Center

Amazon is facing scrutiny and significant pushbacks over its plan to install 250 diesel backup generators for a proposed data center in Becker, Minnesota. Much of the concern had been due to the fact that the hyperscaler was seeking an exemption from the state’s standard permitting process, a move that has sparked opposition from environmental groups and state officials. Aggregate Power that Matches Nuclear Power Generation Amazon’s proposed fleet of diesel generators would have a maximum power output almost equivalent to the 647 MW that is produced by Xcel Energy’s nuclear plant in Monticello, one of the two existing nuclear generation stations in the state. Meanwhile, as reported by Datacenter Dynamics, according to a real estate filing published with the Minnesota Department of Revenue, the land parcel assigned for the Amazon data center in Becker was previously part of Minneapolis-based utility Xcel’s coal-powered Sherco Site. Amazon argues that the diesel generators in question are essential to ensuring reliable and secure access to critical data and applications for its customers, including hospitals and first responders. However, opponents worry about the environmental impact and the precedent it may set for future large-scale data center developments in the state. The Law and Its Exception Under Minnesota state law, any power plant capable of generating 50 megawatts or more that connects to the grid via transmission lines must obtain a Certificate of Need from the Public Utilities Commission (PUC). This certification ensures that the infrastructure is necessary and that no cheaper, cleaner alternatives exist. Amazon, however, contends that its generators do not fall under this requirement because they are not connected to the larger electric grid; power generated would be strictly used by the data center suffering an outage from its primary power source. That power would be generated locally, and not transmitted over

Read More »

Microsoft will invest $80B in AI data centers in fiscal 2025

And Microsoft isn’t the only one that is ramping up its investments into AI-enabled data centers. Rival cloud service providers are all investing in either upgrading or opening new data centers to capture a larger chunk of business from developers and users of large language models (LLMs).  In a report published in October 2024, Bloomberg Intelligence estimated that demand for generative AI would push Microsoft, AWS, Google, Oracle, Meta, and Apple would between them devote $200 billion to capex in 2025, up from $110 billion in 2023. Microsoft is one of the biggest spenders, followed closely by Google and AWS, Bloomberg Intelligence said. Its estimate of Microsoft’s capital spending on AI, at $62.4 billion for calendar 2025, is lower than Smith’s claim that the company will invest $80 billion in the fiscal year to June 30, 2025. Both figures, though, are way higher than Microsoft’s 2020 capital expenditure of “just” $17.6 billion. The majority of the increased spending is tied to cloud services and the expansion of AI infrastructure needed to provide compute capacity for OpenAI workloads. Separately, last October Amazon CEO Andy Jassy said his company planned total capex spend of $75 billion in 2024 and even more in 2025, with much of it going to AWS, its cloud computing division.

Read More »

John Deere unveils more autonomous farm machines to address skill labor shortage

Join our daily and weekly newsletters for the latest updates and exclusive content on industry-leading AI coverage. Learn More Self-driving tractors might be the path to self-driving cars. John Deere has revealed a new line of autonomous machines and tech across agriculture, construction and commercial landscaping. The Moline, Illinois-based John Deere has been in business for 187 years, yet it’s been a regular as a non-tech company showing off technology at the big tech trade show in Las Vegas and is back at CES 2025 with more autonomous tractors and other vehicles. This is not something we usually cover, but John Deere has a lot of data that is interesting in the big picture of tech. The message from the company is that there aren’t enough skilled farm laborers to do the work that its customers need. It’s been a challenge for most of the last two decades, said Jahmy Hindman, CTO at John Deere, in a briefing. Much of the tech will come this fall and after that. He noted that the average farmer in the U.S. is over 58 and works 12 to 18 hours a day to grow food for us. And he said the American Farm Bureau Federation estimates there are roughly 2.4 million farm jobs that need to be filled annually; and the agricultural work force continues to shrink. (This is my hint to the anti-immigration crowd). John Deere’s autonomous 9RX Tractor. Farmers can oversee it using an app. While each of these industries experiences their own set of challenges, a commonality across all is skilled labor availability. In construction, about 80% percent of contractors struggle to find skilled labor. And in commercial landscaping, 86% of landscaping business owners can’t find labor to fill open positions, he said. “They have to figure out how to do

Read More »

2025 playbook for enterprise AI success, from agents to evals

Join our daily and weekly newsletters for the latest updates and exclusive content on industry-leading AI coverage. Learn More 2025 is poised to be a pivotal year for enterprise AI. The past year has seen rapid innovation, and this year will see the same. This has made it more critical than ever to revisit your AI strategy to stay competitive and create value for your customers. From scaling AI agents to optimizing costs, here are the five critical areas enterprises should prioritize for their AI strategy this year. 1. Agents: the next generation of automation AI agents are no longer theoretical. In 2025, they’re indispensable tools for enterprises looking to streamline operations and enhance customer interactions. Unlike traditional software, agents powered by large language models (LLMs) can make nuanced decisions, navigate complex multi-step tasks, and integrate seamlessly with tools and APIs. At the start of 2024, agents were not ready for prime time, making frustrating mistakes like hallucinating URLs. They started getting better as frontier large language models themselves improved. “Let me put it this way,” said Sam Witteveen, cofounder of Red Dragon, a company that develops agents for companies, and that recently reviewed the 48 agents it built last year. “Interestingly, the ones that we built at the start of the year, a lot of those worked way better at the end of the year just because the models got better.” Witteveen shared this in the video podcast we filmed to discuss these five big trends in detail. Models are getting better and hallucinating less, and they’re also being trained to do agentic tasks. Another feature that the model providers are researching is a way to use the LLM as a judge, and as models get cheaper (something we’ll cover below), companies can use three or more models to

Read More »

OpenAI’s red teaming innovations define new essentials for security leaders in the AI era

Join our daily and weekly newsletters for the latest updates and exclusive content on industry-leading AI coverage. Learn More OpenAI has taken a more aggressive approach to red teaming than its AI competitors, demonstrating its security teams’ advanced capabilities in two areas: multi-step reinforcement and external red teaming. OpenAI recently released two papers that set a new competitive standard for improving the quality, reliability and safety of AI models in these two techniques and more. The first paper, “OpenAI’s Approach to External Red Teaming for AI Models and Systems,” reports that specialized teams outside the company have proven effective in uncovering vulnerabilities that might otherwise have made it into a released model because in-house testing techniques may have missed them. In the second paper, “Diverse and Effective Red Teaming with Auto-Generated Rewards and Multi-Step Reinforcement Learning,” OpenAI introduces an automated framework that relies on iterative reinforcement learning to generate a broad spectrum of novel, wide-ranging attacks. Going all-in on red teaming pays practical, competitive dividends It’s encouraging to see competitive intensity in red teaming growing among AI companies. When Anthropic released its AI red team guidelines in June of last year, it joined AI providers including Google, Microsoft, Nvidia, OpenAI, and even the U.S.’s National Institute of Standards and Technology (NIST), which all had released red teaming frameworks. Investing heavily in red teaming yields tangible benefits for security leaders in any organization. OpenAI’s paper on external red teaming provides a detailed analysis of how the company strives to create specialized external teams that include cybersecurity and subject matter experts. The goal is to see if knowledgeable external teams can defeat models’ security perimeters and find gaps in their security, biases and controls that prompt-based testing couldn’t find. What makes OpenAI’s recent papers noteworthy is how well they define using human-in-the-middle

Read More »

Introducing Gemma 3

For a deeper dive into the technical details behind these capabilities, as well as a comprehensive overview of our approach to responsible development, refer to

Read More »