Try my new budgeting app Cheddar 🧀
Better than YNAB, Mint (RIP), or EveryDollar.
5.0
(2)
Export 21 ingredients for grocery delivery
Step 1
Dice 1 medium yellow onion (about 1 1/2 cups). Mince 3 garlic cloves. Drain and rinse 2 (about 15-ounce) cans kidney beans.
Step 2
Heat 2 tablespoons olive oil in a Dutch oven or large pot over medium heat until shimmering. Add the onion and cook, stirring occasionally, until softened, 3 to 5 minutes. Add the garlic and cook until fragrant, about 1 minute. Add 3 tablespoons tomato paste and stir to coat the onions. Cook, stirring occasionally until darkened in color, 2 to 3 minutes.
Step 3
Add 2 pounds ground beef, 2 teaspoons kosher salt, and 1/2 teaspoon black pepper. Cook, breaking up the meat with a wooden spoon, until browned and cooked through, 6 to 8 minutes. Add 2 tablespoons chili powder, 1 tablespoon ground cumin, 1 tablespoon unsweetened cocoa powder, 2 teaspoons dried oregano, 1 teaspoon paprika, and 1/4 teaspoon cayenne pepper if using. Stir to coat the meat and cook for 1 minute more.
Step 4
Add the beans, 1 (28-ounce) can fire-roasted crushed tomatoes, and 1 (14.5-ounce) can low-sodium beef or chicken broth, and stir to combine. Bring to a boil. Reduce the heat to maintain a gentle simmer. Cook, stirring occasionally, until the flavors meld and the mixture is slightly thickened, 30 to 40 minutes.
Step 5
Remove the pot from the heat. Add 1 teaspoon apple cider vinegar and stir to combine. Taste and season with more kosher salt as needed. Ladle into bowls and serve with desired toppings.