During iteration planning, sometimes user stories need to be split so that they can be better handled. Here are a few ideas for doing just that.
- Split according to data boundaries:
 - Try splitting based on the data needed to support the story, like region (i.e. northeast, southeast, etc.), instead of everything (i.e. U.S.).
 - Split by operation:
 - Make an effort to split stories into separate CRUD operations (i.e. create, read, update, destroy).
 - Separate performance requirements:
 - If a story is made complicated by specific performance requirements, split the functional and non-functional requirements into separate stories (i.e. Story 1: Make the chart screen; Story 2: Make it respond in < 1 second).
 - Split by Priority:
 - If a large story has pieces that have different priorities, split them into separate stories.
 
For more on when and how to split stories, I highly recommend reading Mike Cohn's book, Agile Estimating and Planning.