When using Event Sourcing, business events should reflect real-world processes rather than being shaped by read model needs. Using a work schedule example, the post demonstrates how to transform granular EmployeeAllocated events into EmployeeAllocatedInMonth events in-memory before applying projection logic, avoiding both database bloat and coupling business logic to read model requirements. The technique uses Marten's IAggregateGrouper interface to group and transform events before projections run, with step-by-step C# code showing how to flatten, group by month, and generate transformed events that feed into a MultiStreamProjection.