For best results, adjust your oven rack to be a little lower than the center of the oven. The top of your bread loaf should be at the center of the oven. This helps it bake evenly all the way through the center of the bread.
Preheat oven to 350 degrees. Spray a loaf pan with non-stick cooking spray. I like to line mine with parchment paper before spraying so I can lift the entire loaf out easily. I also use office clips to hold the parchment paper in place.
Cut the whole cranberries into halves and set them aside.
NOTE - I prefer to use hand beaters and a large mixing bowl for this recipe instead of a stand mixer just because the last part of the recipe needs to be mixed in by hand. In a large bowl, cream the butter and sugar.
Add the almond extract and eggs.
Beat in the baking powder, baking soda, and salt.
Whisk together the sour cream and milk in a measuring cup.
Add ⅓ of the flour to the batter.
Add ½ the sour cream/milk mixture.
Add another ⅓ of the flour.
Add the last of the sour cream/milk mixture.
Scrape down the side of the bowl well.
Sprinkle the remaining flour on the top of the batter.
Dump the cranberries and poppy seeds onto top of the flour.
Fold the cranberries into the batter with the last bit of flour and the poppy seeds. This absorbs any cranberry juice without turning your batter pink. Mix just until combined.
Pour batter into the prepared loaf pan.
Use a rubber spatula to spread it out evenly.
Prepare the crumb topping by stirring the flour and sugar together with a fork, and then cut in the butter until it is crumbly. OR put the flour, sugar, and butter in a food processor and pulse until it is crumbly.
Sprinkle the crumb topping on the bread batter.
Bake at 350 for 60 minutes, tenting with foil for the last 15 minutes. A toothpick should come out clean.
Cool for at least 30 minutes on a wire rack before removing the bread from the pan to finish cooling.
Do not slice until completely cool.