Try my new budgeting app Cheddar 🧀
Better than YNAB, Mint (RIP), or EveryDollar.
5.0
(7)
Export 20 ingredients for grocery delivery
Step 1
Prep all ingredients according to specifications above.
Step 2
Make the meatballs: In a large bowl, whisk the eggs & milk together, then immerse the breadcrumbs in it & ensure they are fully immersed. Let this mixture sit for 1 to 2 minutes to allow the breadcrumbs to get soaked by the liquids, then add the next 7 ingredients and mix together until well-combined. Gently fold in the ground beef and mix so that all is well-combined. Do not overmix! Form mixture into small meatballs, about .4-.5 ounce each, and arrange them on a large plate or sheet pan and set them aside until you are ready to add them to the soup. (See NOTE below.)
Step 3
Add the oil, garlic and crushed red pepper to a large pot or Dutch oven (at least 7 quarts) over medium-low heat and cook for 2-3 minutes or until the garlic starts to brown. Then, increase the heat to medium, add the tomato paste and caramelize it for about two minutes.
Step 4
Add the onions, carrots and celery and continue to sauté until they are mostly softened, about 5-7 minutes.
Step 5
Carefully pour the broth into the pot, add the parmigiano rind, cover and bring the broth to a light simmer.
Step 6
One-by-one (so as to not damage/cause the meatballs to clump together) add the meatballs to the broth while gently stirring. Slowly bring the broth back up to a simmer, while stirring occasionally, and ensure that the meatballs are set.
Step 7
Once the meatballs are set (cooked), gently add the escarole to the broth in batches as the escarole leaves are gradually wilted in the broth.
Step 8
Partially cover the pot, then simmer the soup until the escarole leaves are tender. Season with salt and black pepper.
Step 9
Serve piping hot with a generous sprinkle of grated Pecorino Romano cheese. Buon Appetito!