Brown the ground beef in a dutch oven or stock pot until no longer pink, adding salt to season. Drain all the fat.
Add olive oil and onion, cooking until softened. Add sweet potatoes and serrano pepper, cook for 5 minutes.
Add tomato paste, chili powders, cumin, more salt, black pepper, and allspice. Cook for 5 minutes.
Slowly add beef stock, cocoa, tomatoes, and water. Stir to combine. Cover and simmer 30 minutes, then uncover and simmer another 30 minutes or longer until thickened. (Optional: simmer low for 3 hours or use a slow cooker on low all day).