# Class ServerStatsReport | EchoHub Documentation
A snapshot of server activity over one reporting window, produced periodically by the stats-report background job. Each report is logged as pretty-printed JSON and persisted for historical trend analysis. The window is &quot;since the previous report&quot; (or since startup for the first report of a run).

# Class ServerStatsReport

Namespace
  EchoHub.Core.Models

Assembly
  EchoHub.Core.dll

A snapshot of server activity over one reporting window, produced periodically by the stats-report background job. Each report is logged as pretty-printed JSON and persisted for historical trend analysis. The window is "since the previous report" (or since startup for the first report of a run).

    public class ServerStatsReport

Inheritance
  object
  ServerStatsReport

Inherited Members
  object.GetType()
  object.MemberwiseClone()
  object.ToString()
  object.Equals(object)
  object.Equals(object, object)
  object.ReferenceEquals(object, object)
  object.GetHashCode()

## Constructors

### ServerStatsReport()

    public ServerStatsReport()

## Properties

### ActiveMembers

Distinct users who sent at least one message during the window.

    public int ActiveMembers { get; set; }

#### Property Value

int

### Bans

Users banned during the window.

    public int Bans { get; set; }

#### Property Value

int

### BytesUploaded

Total bytes across all attachments uploaded during the window.

    public long BytesUploaded { get; set; }

#### Property Value

long

### Connections

Session connects during the window (per-connection, across SignalR + IRC).

    public int Connections { get; set; }

#### Property Value

int

### Disconnections

Session disconnects during the window ("members left" sessions).

    public int Disconnections { get; set; }

#### Property Value

int

### FilesUploaded

Attachments (files/images/audio) uploaded during the window.

    public int FilesUploaded { get; set; }

#### Property Value

int

### GeneratedAt

When this report was generated (equals PeriodEnd).

    public DateTimeOffset GeneratedAt { get; set; }

#### Property Value

DateTimeOffset

### Id

    public Guid Id { get; set; }

#### Property Value

Guid

### Kicks

Users kicked during the window.

    public int Kicks { get; set; }

#### Property Value

int

### MessagesSent

Messages sent during the window.

    public int MessagesSent { get; set; }

#### Property Value

int

### NewMembers

Accounts registered during the window ("new members joined").

    public int NewMembers { get; set; }

#### Property Value

int

### OnlineNow

Distinct users online at window end.

    public int OnlineNow { get; set; }

#### Property Value

int

### PeakOnline

Peak distinct users online observed during the window.

    public int PeakOnline { get; set; }

#### Property Value

int

### PeriodEnd

End of the reporting window.

    public DateTimeOffset PeriodEnd { get; set; }

#### Property Value

DateTimeOffset

### PeriodStart

Start of the reporting window.

    public DateTimeOffset PeriodStart { get; set; }

#### Property Value

DateTimeOffset

### TotalMembers

Total registered (unique) members at window end.

    public int TotalMembers { get; set; }

#### Property Value

int

### WindowHours

Length of the reporting window in hours.

    public double WindowHours { get; set; }

#### Property Value

double