In a large pot, add olive oil and heat to medium-high. Add onions and garlic and cook for about 5 minutes, stirring occasionally. When onions are translucent, add ground beef and crumble and cook until no longer pink.
In a small bowl, combine oregano, chili powder, cumin, cocoa, allspice and salt. Add to ground beef and stir.
Add tomato paste, diced tomatoes, beef broth and water and stir well to combine. Bring to a boil then reduce heat to a simmer. Continue simmering, uncovered, for 2 hours, stirring occasionally.