Ingredients
Filling
- 1.5 lbs ground beef (80/20)
- 1 medium yellow onion, finely chopped
- 1 large carrot, grated
- 3-4 cloves garlic, minced
- 1 1/2 tbsp tomato paste
- 2 1/2 tbsp All-Purpose Flour
- 1 tbsp soy sauce
- 1 tbsp ketchup
- 1 tbsp white vinegar
- 2 cups beef broth
- 2 sprigs fresh rosemary
- 1/4 tsp dried thyme
- 1/4 tsp allspice
- 3/4 cup frozen peas
- Kosher salt and black pepper
Potato Topping
- 2 lbs yellow potatoes
- 6 tbsp unsalted butter, melted
- 1/2 cup heavy cream, warm
- 2/3 cup Pecorino Romano cheese, grated
- 1 tsp dried parsley
- 1/4 tsp garlic powder
- 2 large egg yolks
Brown the Beef and Build the Gravy
Place a large pan or dutch oven over medium-high heat and add the ground beef. Season it with salt and pepper and let it brown, undisturbed, for several minutes to get a good crust.
Once browned, break the meat apart and add the chopped onion and grated carrot. Cook until the vegetables have softened, which usually takes about 4-5 minutes. Stir in the minced garlic and cook for one more minute.
Add the tomato paste to the pan, stirring it into the beef and letting it cook for a minute. This will develop its flavor.
Sprinkle the flour over the mixture and stir continuously for about two minutes. This step is important to cook out the raw flour taste and helps thicken the gravy.
Pour in the soy sauce, ketchup, and vinegar, then add the beef broth, scraping the bottom of the pan to release any browned bits.
Drop in the rosemary sprigs, dried thyme, and allspice. Bring the pan to a simmer and let it cook for ~10 minutes so the gravy can thicken up.
Fish out the rosemary sprigs, then taste the filling and add more salt and pepper if it needs it. Stir in the frozen peas and let them cook for a final 5 minutes.
Boil and Mash the Potatoes
As the filling is simmering, get the potatoes going. Peel them and cut them into even-sized chunks.
Put the potatoes in a pot, cover them with cold, salted water, and bring it to a boil. Cook for 15-20 minutes, or until a fork slides in easily.
Drain the potatoes thoroughly. Put the empty pot back on the burner over medium heat for a minute and toss the potatoes back in to dry them out completely.
This removes any excess water and makes for a fluffier mash.
Take the pot off the heat. Mash the potatoes well, then add the melted butter, warm cream, Pecorino cheese, parsley, and garlic powder. Mix it all together.
Finally, add the egg yolks and stir them in quickly until everything is smooth and combined.
Assemble and Bake
Set your oven to preheat to 400°F.
Spread the beef filling evenly across the bottom of a baking dish. An 8×8 or similar sized dish works well for this amount.
Spoon the mashed potato mixture over the beef. Use a spatula to gently spread it out to the edges, sealing in the filling.
Drag a fork over the top of the potatoes to create some texture. This helps the top get extra crispy.
Sprinkle a bit more Pecorino over the top for good measure.
Bake for 20-25 minutes. The filling should be bubbling at the edges and the potato top should be golden brown. For a darker top, you can switch to the broiler for the last 2 minutes, but watch it carefully so it doesn’t burn.
Let the pie rest for at least 10 minutes before you serve it. This allows the filling to set up.

Classic Shepherd’s Pie
Ingredients
Filling
- 1.5 lbs ground beef 80/20
- 1 medium yellow onion finely chopped
- 1 large carrot grated
- 3-4 cloves garlic minced
- 1 1/2 tbsp tomato paste
- 2 1/2 tbsp All-Purpose Flour
- 1 tbsp soy sauce
- 1 tbsp ketchup
- 1 tbsp white vinegar
- 2 cups beef broth
- 2 sprigs fresh rosemary
- 1/4 tsp dried thyme
- 1/4 tsp allspice
- 3/4 cup frozen peas
- Kosher salt and black pepper
Potato Topping
- 2 lbs yellow potatoes
- 6 tbsp unsalted butter melted
- 1/2 cup heavy cream warm
- 2/3 cup Pecorino Romano cheese grated
- 1 tsp dried parsley
- 1/4 tsp garlic powder
- 2 large egg yolks
Instructions
- Brown ground beef with salt and pepper in large pan over medium-high heat until crusty.
- Add onion and carrot, cook 4-5 minutes until soft. Add garlic, cook 1 minute.
- Stir in tomato paste, cook 1 minute. Add flour, cook 2 minutes while stirring.
- Add soy sauce, ketchup, vinegar, and beef broth. Scrape pan bottom to deglaze.
- Add rosemary, thyme, and allspice. Simmer 10 minutes until thickened.
- Remove rosemary sprigs. Season to taste. Add peas, cook 5 minutes.
- Meanwhile, peel and chunk potatoes. Boil in salted water 15-20 minutes until tender.
- Drain potatoes, return to hot pot briefly to dry. Mash thoroughly.
- Mix in butter, cream, Pecorino, parsley, garlic powder, and egg yolks until smooth.
- Preheat oven to 400°F.
- Spread beef mixture in 8×8 baking dish. Top with mashed potatoes, sealing edges.
- Create texture with fork tines. Sprinkle with additional Pecorino.
- Bake 20-25 minutes until bubbling and golden brown.
- Let rest 10 minutes before serving.