Microsoft Certified: Power Platform Developer Associate (PL-400)

Practice PL-400 questions for Implement Power Apps improvements (5–10%). These original questions are grounded in verified Microsoft Learn content. These questions cover the English-language PL-400 skills measured through October 15, 2026. Eligible candidates may sit the exam through October 30, 2026.

Q01 - Question

A gallery shows 100 orders. A label in each gallery row uses LookUp against a related data source to show the customer name. The gallery takes minutes to render. You need to reduce the render time without changing the data model. What should you do?

Domain: Implement Power Apps improvements (5–10%) Type: Single choice

B is correct.

Explanation: A LookUp function on a label inside a gallery runs once for every record. For 100 records, the app performs 100 individual calls to the data source. Caching the related data in a collection means the LookUp executes locally instead of across the network, which significantly reduces the render time.

A is incorrect: Refresh forces an update of data that Power Apps often refreshes automatically. This adds redundant work and does not remove the per-row calls.

C is incorrect: A larger delegation limit changes how many rows are returned locally. It does not remove the 100 individual LookUp calls across the network.

D is incorrect: Moving the formula to the Items property is not a supported fix. The supported options are using a details screen or a cached collection.

Learn more in Microsoft Learn

Q02 - Question

Several screens use drop-down controls with Items set to Filter(DepartmentList, Status = "Active"). The data is static. You want one query for the whole session and no repeated network calls when users move between screens. Where should you load the data?

Domain: Implement Power Apps improvements (5–10%) Type: Single choice

C is correct.

Explanation: The OnStart property is an app-level property that runs only once when the app starts. Loading the data into a collection there with ClearCollect allows every drop-down to use the cached collection, ensuring the data source is not queried again when navigating between screens.

A is incorrect: The OnVisible property runs each time a user navigates to the screen. This queries the data source repeatedly and loses the caching advantage.

B is incorrect: Keeping the Filter function in each drop-down queries the data source for every control. Adding a Refresh function creates even more redundant network calls.

D is incorrect: A button OnSelect property runs only when the user selects the button. The collection might not exist when the screen renders the drop-down control.

Learn more in Microsoft Learn

Q03 - Question

A button builds a collection from a data source, and a Timer control shows 4,000 milliseconds. You need to determine whether the delay comes from the app, the network, or the data source. Which tool should you use while the app is in Preview mode?

Domain: Implement Power Apps improvements (5–10%) Type: Single choice

A is correct.

Explanation: The Monitor tool logs each network call and displays details such as duration, data source, and the selected control. Reviewing these durations helps you determine if the time measured by the Timer control is spent waiting for the data source to filter and respond.

B is incorrect: The Variables view displays your variables, their current values, and where they are used. It does not provide network call durations or performance metrics.

C is incorrect: Adding a version label helps identify which published version of the app appears to avoid caching confusion. It does not help locate performance delays.

D is incorrect: Adding another Timer control only measures the total elapsed time again. It cannot separate the delay into app, network, and data source processing times.

Learn more in Microsoft Learn

Q04 - Question

The OnStart property runs three ClearCollect formulas in sequence. Each takes about 3 seconds, so the app takes about 9 seconds to start. The collections do not depend on each other. You need to reduce the start time. What should you do?

Domain: Implement Power Apps improvements (5–10%) Type: Single choice

B is correct.

Explanation: Formulas in the OnStart property normally process one at a time. The Concurrent function allows you to process independent formulas at the same time. Wrapping the three calls in Concurrent means they run simultaneously, reducing the load time from nine seconds to three seconds.

A is incorrect: The OnVisible property runs when a user navigates to the screen. Moving the formulas there does not make them process at the same time.

C is incorrect: Collect is not delegable, so only the first 500 items are returned by default. It does not make the formulas run in parallel.

D is incorrect: Using the Refresh function adds extra redundant calls to the data source. It does not reduce the sequential processing time of the collection formulas.

Learn more in Microsoft Learn

Q05 - Question

You compare two buttons that build the same two collections. One uses sequential ClearCollect formulas. The other wraps both in Concurrent. You want to display the elapsed milliseconds for each run. Which approach matches the documented test?

Domain: Implement Power Apps improvements (5–10%) Type: Single choice

A is correct.

Explanation: The documented exercise sets a start variable with the Now function before the formulas run. It then calculates the DateDiff in milliseconds using Now after the formulas finish. A label displays the result for each button, allowing you to compare the time saved by Concurrent.

B is incorrect: A Timer control is a different documented technique for measuring data connections. This specific exercise measures time using variables and a text label instead.

C is incorrect: Monitor tracks network calls. Because these collections are built from inline records rather than a data source, Monitor is not the method used here.

D is incorrect: A version label only identifies which published version of the app you are viewing. It does not measure the elapsed time of a formula.

Learn more in Microsoft Learn

Q06 - Question

A canvas app loads quickly in development but slowly in production. The Data row limit is set to 2,000 to avoid delegation warnings, and OnStart runs ClearCollect(colDesks,Desks). Development has a few rows. Production is fully populated. What should you do first?

Domain: Implement Power Apps improvements (5–10%) Type: Single choice

B is correct.

Explanation: The raised Data row limit allows the ClearCollect function to retrieve up to 2,000 rows in the production environment, but only a few rows in development. Eliminating delegation warnings is a better approach than raising the limit, so you should reduce the limit to remove the cause of the slower production load.

A is incorrect: Debug published app can hurt performance, but it does not explain the difference between small development data and full production data.

C is incorrect: Enabling Navigate in OnStart delays rendering the first screen until all OnStart expressions are evaluated, so it would not help.

D is incorrect: A loading image gives visual feedback and improves perception, but it does not speed up loading the production rows.

Learn more in Microsoft Learn

Q07 - Question

You must measure how long OnStart takes for a canvas app and avoid influence from data caching. You add Trace() calls before and after the ClearCollect formula. Which approach gives reliable Monitor results?

Domain: Implement Power Apps improvements (5–10%) Type: Single choice

C is correct.

Explanation: A cold start keeps captured events free of data caching effects. To ensure a cold start, you must enable the Debug published app setting, save, publish, and launch Monitor from make.powerapps.com. The custom Trace messages will then accurately mark the start and end of the OnStart processing in the event log.

A is incorrect: Manually rerunning OnStart from within Power Apps Studio can introduce data caching, which negatively influences the captured events and invalidates the test.

B is incorrect: Rerunning OnVisible manually from within the studio also risks data caching influence and does not provide a cold start of the published app.

D is incorrect: Browser developer tools show similar event information but lack specific app context details such as the control name and the exact formula.

Learn more in Microsoft Learn

Q08 - Question

An older app must open ChooseLocation when the current user has no address and HomeScreen otherwise. The logic uses Navigate() in App.OnStart, and the first screen waits for OnStart to finish. How should you implement the conditional start screen?

Domain: Implement Power Apps improvements (5–10%) Type: Single choice

A is correct.

Explanation: Using the Navigate function in OnStart is retired, and the App.StartScreen property is the recommended replacement. Because StartScreen is a data flow property, it can use the User function and data source lookups to conditionally choose the first screen without waiting for the OnStart processing to finish.

B is incorrect: The OnVisible property of HomeScreen runs only after the screen is presented, so it cannot determine which screen appears first during startup.

C is incorrect: Global variables and collections, including any that are created during the OnStart processing, are not available for use in the StartScreen property.

D is incorrect: The non-blocking rule allows OnStart formulas to run concurrently with other rules, but it does not replace the retired Navigate function approach.

Learn more in Microsoft Learn

Q09 - Question

OnStart loads Desks, 'Desk Features', and the Office365Users profile with three sequential statements. Each statement is independent of the others. You want to reduce startup time without changing the data loaded. Which change should you make?

Domain: Implement Power Apps improvements (5–10%) Type: Single choice

A is correct.

Explanation: When preloading data from connectors, multiple items run sequentially one at a time by default. Because each statement preloads data independently, wrapping them in the Concurrent function runs them in parallel. This approach reduces the total startup time without changing the actual data being loaded.

B is incorrect: Direct binding changes how data is retrieved and removes the loading indicator option. It does not parallelize the independent preload statements.

C is incorrect: Moving the logic to OnVisible defers the load until the screen is used, but it does not make the independent statements run in parallel.

D is incorrect: Calling the connector once per property adds unnecessary calls. Saving a single call result in a variable is a more efficient approach for profiles.

Learn more in Microsoft Learn

Q10 - Question

A screen's OnVisible property preloads colDesks with ClearCollect(colDesks,Desks). Users navigate to the screen often, and the collection reloads every time. You want to load the data only the first time the screen is used. Which formula should you use?

Domain: Implement Power Apps improvements (5–10%) Type: Single choice

A is correct.

Explanation: The OnVisible property runs each time the screen is navigated to, which causes the ClearCollect function to refresh the collection too frequently. By checking IsEmpty first, the ClearCollect function only runs when the collection has no data, ensuring the data load happens exactly once.

B is incorrect: The SaveData function persists data to local storage, but the ClearCollect function will still run and retrieve data on every visit to the screen.

C is incorrect: The Refresh function updates data from the data source for direct bindings, but it does not control when a collection is initially loaded.

D is incorrect: Checking the Connection.Connected property tests connectivity only, so the ClearCollect function still runs on every navigation whenever the user is connected.

Learn more in Microsoft Learn

Take the PL-400 practice test · Read the PL-400 study guide