Using IQueryable.GroupBy to count related database entities
You don't need the grouping at the Client level. No grouping at all, actually. Don't worry, this is a common mistake when people want grouping/aggregation in child collections. Per client, the Tickets can be counted: 

return clients
    .Where(cli =&gt; cli.IsActive)
    .Select(cli =&gt; new DashboardItemViewModel
    {
        Id = cli.Id,
        Name = cli.Name,
        Open = cli.Tickets.Count(t =&gt; t.Status == StatusType.Open &amp;&amp; !t.IsArchived),
        Responded = cli.Tickets.Count(t =&gt; t.Status == StatusType.Responded &amp;&amp; !t.IsArchived),
        Resolved = cli.Tickets.Count(t =&gt; t.Status == StatusType.Resolved &amp;&amp; !t.IsArchived),
    });


Or in query syntax, so we can benefit from the let statement:

return from cli in clients
    where cli.IsActive
    let activeTickets = cli.Tickets.Where(t =&gt; !t.IsArchived)
    select new DashboardItemViewModel
    {
        Id = cli.Id,
        Name = cli.Name,
        Open = activeTickets.Count(t =&gt; t.Status == StatusType.Open),
        Responded = activeTickets.Count(t =&gt; t.Status == StatusType.Responded),
        Resolved = activeTickets.Count(t =&gt; t.Status == StatusType.Resolved)
    };