Heat oil in a large cast-iron or heavy pot over medium-high heat. Add diced bacon and cook until nearly crisp. Add onion and sauté until bacon is fully crisp and onions are golden, about 3–5 minutes.
Stir in tomato paste, garlic, ground mustard, paprika, and 3/4 teaspoon each of salt and pepper. Cook, stirring constantly, until fragrant, 2–4 minutes. Add navy beans, pinto beans, ketchup, brown sugar, vinegar, Worcestershire sauce, lemon juice, and broth. Stir to combine.
Bring to a boil, then reduce heat to low. Cover and simmer for 1 hour, stirring every 10–15 minutes to prevent sticking. Replace the lid after each stir. If the sauce is too thick, remove the lid or slightly increase the heat. If bubbling too much, reduce heat or add a splash of broth.
After 1 hour, once the sauce has thickened and the beans are tender, remove from heat. Taste and adjust seasoning if needed. Serve warm and enjoy.
Video
Notes
Note 1: You can use homemade beans instead of canned. One 15.5-ounce can = about 2 cups cooked beans.Storage: Store leftovers in an airtight container in the fridge for up to 4 days. To freeze, let beans cool completely, then transfer to a freezer-safe container or bag. Remove as much air as possible before sealing. Freeze for up to 3 months.