diff --git a/.github/styles/Vocab/HMSVocab/accept.txt b/.github/styles/Vocab/HMSVocab/accept.txt
index a72dcb3cb8..3629617430 100644
--- a/.github/styles/Vocab/HMSVocab/accept.txt
+++ b/.github/styles/Vocab/HMSVocab/accept.txt
@@ -171,3 +171,4 @@ userid
peerid
jsx
sg
+edia
\ No newline at end of file
diff --git a/docs/api-reference/javascript/v2/enums/HMSNotificationTypes.md b/docs/api-reference/javascript/v2/enums/HMSNotificationTypes.md
index c1f742541a..d1ac2f46d7 100644
--- a/docs/api-reference/javascript/v2/enums/HMSNotificationTypes.md
+++ b/docs/api-reference/javascript/v2/enums/HMSNotificationTypes.md
@@ -77,6 +77,12 @@ nav: '2.5'
---
+### POLLS_LIST
+
+• **POLLS_LIST** = `"POLLS_LIST"`
+
+---
+
### POLL_CREATED
• **POLL_CREATED** = `"POLL_CREATED"`
diff --git a/docs/api-reference/javascript/v2/enums/HMSPollStates.md b/docs/api-reference/javascript/v2/enums/HMSPollStates.md
new file mode 100644
index 0000000000..4648065b83
--- /dev/null
+++ b/docs/api-reference/javascript/v2/enums/HMSPollStates.md
@@ -0,0 +1,22 @@
+---
+title: HMSPollStates
+nav: '2.9'
+---
+
+## Enumeration Members
+
+### CREATED
+
+• **CREATED** = `"created"`
+
+---
+
+### STARTED
+
+• **STARTED** = `"started"`
+
+---
+
+### STOPPED
+
+• **STOPPED** = `"stopped"`
diff --git a/docs/api-reference/javascript/v2/enums/HMSRecordingState.md b/docs/api-reference/javascript/v2/enums/HMSRecordingState.md
index 4b5ee88d52..9510c0d95b 100644
--- a/docs/api-reference/javascript/v2/enums/HMSRecordingState.md
+++ b/docs/api-reference/javascript/v2/enums/HMSRecordingState.md
@@ -1,6 +1,6 @@
---
title: HMSRecordingState
-nav: '2.9'
+nav: '2.10'
---
## Enumeration Members
diff --git a/docs/api-reference/javascript/v2/enums/HMSRoomState.md b/docs/api-reference/javascript/v2/enums/HMSRoomState.md
index 1f2f09124e..0fbd62eda1 100644
--- a/docs/api-reference/javascript/v2/enums/HMSRoomState.md
+++ b/docs/api-reference/javascript/v2/enums/HMSRoomState.md
@@ -1,6 +1,6 @@
---
title: HMSRoomState
-nav: '2.10'
+nav: '2.11'
---
Check out internal-docs/RoomStateFlow.tldr for flow of room state
diff --git a/docs/api-reference/javascript/v2/enums/HMSSimulcastLayer.md b/docs/api-reference/javascript/v2/enums/HMSSimulcastLayer.md
index 3afcc7f9c1..1df5f32906 100644
--- a/docs/api-reference/javascript/v2/enums/HMSSimulcastLayer.md
+++ b/docs/api-reference/javascript/v2/enums/HMSSimulcastLayer.md
@@ -1,6 +1,6 @@
---
title: HMSSimulcastLayer
-nav: '2.11'
+nav: '2.12'
---
## Enumeration Members
diff --git a/docs/api-reference/javascript/v2/enums/HMSVideoPluginCanvasContextType.md b/docs/api-reference/javascript/v2/enums/HMSVideoPluginCanvasContextType.md
index b8191f6fa1..783ce1922f 100644
--- a/docs/api-reference/javascript/v2/enums/HMSVideoPluginCanvasContextType.md
+++ b/docs/api-reference/javascript/v2/enums/HMSVideoPluginCanvasContextType.md
@@ -1,6 +1,6 @@
---
title: HMSVideoPluginCanvasContextType
-nav: '2.12'
+nav: '2.13'
---
## Enumeration Members
diff --git a/docs/api-reference/javascript/v2/enums/HMSVideoPluginType.md b/docs/api-reference/javascript/v2/enums/HMSVideoPluginType.md
index 23c093d508..e294653026 100644
--- a/docs/api-reference/javascript/v2/enums/HMSVideoPluginType.md
+++ b/docs/api-reference/javascript/v2/enums/HMSVideoPluginType.md
@@ -1,6 +1,6 @@
---
title: HMSVideoPluginType
-nav: '2.13'
+nav: '2.14'
---
Specifies the type of the plugin a transforming plugin will get an output canvas to give the resulting
diff --git a/docs/api-reference/javascript/v2/home/content.md b/docs/api-reference/javascript/v2/home/content.md
index 99c054da89..f28a4860c5 100644
--- a/docs/api-reference/javascript/v2/home/content.md
+++ b/docs/api-reference/javascript/v2/home/content.md
@@ -13,6 +13,7 @@ nav: '1.1'
- [HMSPlaylistType](/api-reference/javascript/v2/enums/HMSPlaylistType)
- [HMSPluginUnsupportedTypes](/api-reference/javascript/v2/enums/HMSPluginUnsupportedTypes)
- [HMSPollQuestionType](/api-reference/javascript/v2/enums/HMSPollQuestionType)
+- [HMSPollStates](/api-reference/javascript/v2/enums/HMSPollStates)
- [HMSRecordingState](/api-reference/javascript/v2/enums/HMSRecordingState)
- [HMSRoomState](/api-reference/javascript/v2/enums/HMSRoomState)
- [HMSSimulcastLayer](/api-reference/javascript/v2/enums/HMSSimulcastLayer)
@@ -180,7 +181,7 @@ Renames and re-exports [HMSNotifications](/api-reference/javascript/v2/interface
### HMSNotificationMapping
-Ƭ **HMSNotificationMapping**<`T`, `C`\>: { `CHANGE_MULTI_TRACK_STATE_REQUEST`: [`HMSChangeMultiTrackStateRequestNotification`](/api-reference/javascript/v2/interfaces/HMSChangeMultiTrackStateRequestNotification) ; `CHANGE_TRACK_STATE_REQUEST`: [`HMSChangeTrackStateRequestNotification`](/api-reference/javascript/v2/interfaces/HMSChangeTrackStateRequestNotification) ; `DEVICE_CHANGE_UPDATE`: [`HMSDeviceChangeEventNotification`](/api-reference/javascript/v2/interfaces/HMSDeviceChangeEventNotification) ; `ERROR`: [`HMSExceptionNotification`](/api-reference/javascript/v2/interfaces/HMSExceptionNotification) ; `HAND_RAISE_CHANGED`: [`HMSPeerNotification`](/api-reference/javascript/v2/interfaces/HMSPeerNotification) ; `METADATA_UPDATED`: [`HMSPeerNotification`](/api-reference/javascript/v2/interfaces/HMSPeerNotification) ; `NAME_UPDATED`: [`HMSPeerNotification`](/api-reference/javascript/v2/interfaces/HMSPeerNotification) ; `NEW_MESSAGE`: [`HMSMessageNotification`](/api-reference/javascript/v2/interfaces/HMSMessageNotification) ; `PEER_JOINED`: [`HMSPeerNotification`](/api-reference/javascript/v2/interfaces/HMSPeerNotification) ; `PEER_LEFT`: [`HMSPeerNotification`](/api-reference/javascript/v2/interfaces/HMSPeerNotification) ; `PEER_LIST`: [`HMSPeerListNotification`](/api-reference/javascript/v2/interfaces/HMSPeerListNotification) ; `PLAYLIST_TRACK_ENDED`: [`HMSPlaylistItemNotification`](/api-reference/javascript/v2/interfaces/HMSPlaylistItemNotification)<`C`\> ; `POLL_CREATED`: [`HMSPollNotification`](/api-reference/javascript/v2/interfaces/HMSPollNotification) ; `POLL_STARTED`: [`HMSPollNotification`](/api-reference/javascript/v2/interfaces/HMSPollNotification) ; `POLL_STOPPED`: [`HMSPollNotification`](/api-reference/javascript/v2/interfaces/HMSPollNotification) ; `POLL_VOTES_UPDATED`: [`HMSPollNotification`](/api-reference/javascript/v2/interfaces/HMSPollNotification) ; `RECONNECTED`: [`HMSReconnectionNotification`](/api-reference/javascript/v2/interfaces/HMSReconnectionNotification) ; `RECONNECTING`: [`HMSReconnectionNotification`](/api-reference/javascript/v2/interfaces/HMSReconnectionNotification) ; `REMOVED_FROM_ROOM`: [`HMSLeaveRoomRequestNotification`](/api-reference/javascript/v2/interfaces/HMSLeaveRoomRequestNotification) ; `ROLE_UPDATED`: [`HMSPeerNotification`](/api-reference/javascript/v2/interfaces/HMSPeerNotification) ; `ROOM_ENDED`: [`HMSLeaveRoomRequestNotification`](/api-reference/javascript/v2/interfaces/HMSLeaveRoomRequestNotification) ; `TRACK_ADDED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) ; `TRACK_DEGRADED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) ; `TRACK_DESCRIPTION_CHANGED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) ; `TRACK_MUTED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) ; `TRACK_REMOVED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) ; `TRACK_RESTORED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) ; `TRACK_UNMUTED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) }[`T`]
+Ƭ **HMSNotificationMapping**<`T`, `C`\>: { `CHANGE_MULTI_TRACK_STATE_REQUEST`: [`HMSChangeMultiTrackStateRequestNotification`](/api-reference/javascript/v2/interfaces/HMSChangeMultiTrackStateRequestNotification) ; `CHANGE_TRACK_STATE_REQUEST`: [`HMSChangeTrackStateRequestNotification`](/api-reference/javascript/v2/interfaces/HMSChangeTrackStateRequestNotification) ; `DEVICE_CHANGE_UPDATE`: [`HMSDeviceChangeEventNotification`](/api-reference/javascript/v2/interfaces/HMSDeviceChangeEventNotification) ; `ERROR`: [`HMSExceptionNotification`](/api-reference/javascript/v2/interfaces/HMSExceptionNotification) ; `HAND_RAISE_CHANGED`: [`HMSPeerNotification`](/api-reference/javascript/v2/interfaces/HMSPeerNotification) ; `METADATA_UPDATED`: [`HMSPeerNotification`](/api-reference/javascript/v2/interfaces/HMSPeerNotification) ; `NAME_UPDATED`: [`HMSPeerNotification`](/api-reference/javascript/v2/interfaces/HMSPeerNotification) ; `NEW_MESSAGE`: [`HMSMessageNotification`](/api-reference/javascript/v2/interfaces/HMSMessageNotification) ; `PEER_JOINED`: [`HMSPeerNotification`](/api-reference/javascript/v2/interfaces/HMSPeerNotification) ; `PEER_LEFT`: [`HMSPeerNotification`](/api-reference/javascript/v2/interfaces/HMSPeerNotification) ; `PEER_LIST`: [`HMSPeerListNotification`](/api-reference/javascript/v2/interfaces/HMSPeerListNotification) ; `PLAYLIST_TRACK_ENDED`: [`HMSPlaylistItemNotification`](/api-reference/javascript/v2/interfaces/HMSPlaylistItemNotification)<`C`\> ; `POLLS_LIST`: [`HMSPollNotification`](/api-reference/javascript/v2/interfaces/HMSPollNotification) ; `POLL_CREATED`: [`HMSPollNotification`](/api-reference/javascript/v2/interfaces/HMSPollNotification) ; `POLL_STARTED`: [`HMSPollNotification`](/api-reference/javascript/v2/interfaces/HMSPollNotification) ; `POLL_STOPPED`: [`HMSPollNotification`](/api-reference/javascript/v2/interfaces/HMSPollNotification) ; `POLL_VOTES_UPDATED`: [`HMSPollNotification`](/api-reference/javascript/v2/interfaces/HMSPollNotification) ; `RECONNECTED`: [`HMSReconnectionNotification`](/api-reference/javascript/v2/interfaces/HMSReconnectionNotification) ; `RECONNECTING`: [`HMSReconnectionNotification`](/api-reference/javascript/v2/interfaces/HMSReconnectionNotification) ; `REMOVED_FROM_ROOM`: [`HMSLeaveRoomRequestNotification`](/api-reference/javascript/v2/interfaces/HMSLeaveRoomRequestNotification) ; `ROLE_UPDATED`: [`HMSPeerNotification`](/api-reference/javascript/v2/interfaces/HMSPeerNotification) ; `ROOM_ENDED`: [`HMSLeaveRoomRequestNotification`](/api-reference/javascript/v2/interfaces/HMSLeaveRoomRequestNotification) ; `TRACK_ADDED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) ; `TRACK_DEGRADED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) ; `TRACK_DESCRIPTION_CHANGED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) ; `TRACK_MUTED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) ; `TRACK_REMOVED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) ; `TRACK_RESTORED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) ; `TRACK_UNMUTED`: [`HMSTrackNotification`](/api-reference/javascript/v2/interfaces/HMSTrackNotification) }[`T`]
#### Type parameters
@@ -203,6 +204,12 @@ Renames and re-exports [HMSNotifications](/api-reference/javascript/v2/interface
---
+### HMSPollState
+
+Ƭ **HMSPollState**: `"created"` \| `"started"` \| `"stopped"`
+
+---
+
### HMSPreferredSimulcastLayer
Ƭ **HMSPreferredSimulcastLayer**: `Exclude`<[`HMSSimulcastLayer`](/api-reference/javascript/v2/enums/HMSSimulcastLayer), [`NONE`](/api-reference/javascript/v2/enums/HMSSimulcastLayer#none)\>
diff --git a/docs/api-reference/javascript/v2/interfaces/HMSPoll.md b/docs/api-reference/javascript/v2/interfaces/HMSPoll.md
index 9a98571419..fb9664d25a 100644
--- a/docs/api-reference/javascript/v2/interfaces/HMSPoll.md
+++ b/docs/api-reference/javascript/v2/interfaces/HMSPoll.md
@@ -85,7 +85,7 @@ nav: '4.44'
### state
-• `Optional` **state**: `HMSPollState`
+• `Optional` **state**: [`HMSPollState`](/api-reference/javascript/v2/home/content#hmspollstate)
---
diff --git a/docs/api-reference/javascript/v2/interfaces/HMSRoom.md b/docs/api-reference/javascript/v2/interfaces/HMSRoom.md
index bbd02ed6da..06dfe4fd54 100644
--- a/docs/api-reference/javascript/v2/interfaces/HMSRoom.md
+++ b/docs/api-reference/javascript/v2/interfaces/HMSRoom.md
@@ -35,12 +35,24 @@ nav: '4.63'
---
+### isHipaaEnabled
+
+• `Optional` **isHipaaEnabled**: `boolean`
+
+---
+
### isLargeRoom
• `Optional` **isLargeRoom**: `boolean`
---
+### isNoiseCancellationEnabled
+
+• `Optional` **isNoiseCancellationEnabled**: `boolean`
+
+---
+
### joinedAt
• `Optional` **joinedAt**: `Date`
diff --git a/docs/api-reference/javascript/v2/react-hooks/home/content.md b/docs/api-reference/javascript/v2/react-hooks/home/content.md
index 4a399e3539..a254bea27e 100644
--- a/docs/api-reference/javascript/v2/react-hooks/home/content.md
+++ b/docs/api-reference/javascript/v2/react-hooks/home/content.md
@@ -210,6 +210,21 @@ unblock the browser autoplay block
---
+### useAwayNotifications
+
+▸ **useAwayNotifications**(): `Object`
+
+#### Returns
+
+`Object`
+
+| Name | Type |
+| :------------------ | :--------------------------------------------------------------- |
+| `requestPermission` | () => `Promise`<`void`\> |
+| `showNotification` | (`title`: `string`, `options?`: `NotificationOptions`) => `void` |
+
+---
+
### useCustomEvent
▸ **useCustomEvent**<`T`\>(`«destructured»`): [`useCustomEventResult`](/api-reference/javascript/v2/react-hooks/interfaces/useCustomEventResult)<`T`\>
diff --git a/docs/get-started/v2/get-started/insights/connection-quality-score.mdx b/docs/get-started/v2/get-started/insights/connection-quality-score.mdx
new file mode 100644
index 0000000000..6df268be3f
--- /dev/null
+++ b/docs/get-started/v2/get-started/insights/connection-quality-score.mdx
@@ -0,0 +1,62 @@
+---
+title: Connection Quality Score
+nav: 4.3
+---
+
+The Connection Quality Score (CQS) defines the overall network connectivity performance during a video call by synthesizing key underlying network metrics like bitrate, frame rate, packet loss, round trip time, jitter and CPU/Network limitations. These network components significantly influence the incoming and outgoing audio/video quality of a call. Understanding the interplay between these metrics can aid in faster troubleshooting and debugging of call quality issues.
+
+
+
+
+- Know how a call went for a peer; timeline view of their connection quality score; with corresponding network metrics for the entire session duration.
+- These metrics are available immediately after the peer leaves the session.
+- Check how changes in [network metrics impacts media quality](/get-started/v2/get-started/insights/network-performance)
+
+
+
+
+
+## Connection Quality Score(CQS) to measure network quality
+
+CQS is calculated every fixed interval (currently configured at 30 seconds) based on the latest data points captured for certain network components. This applies to both outgoing (publisher) and incoming (subscriber) media quality. The Connection Quality Score assign varied weights to these attributes according to their relative impact on the perceived call quality. Following this, it calculates an indexed score ranging from 0 to 5.
+
+
+
+
+
+### Tier 1 - Failed Call (Score 0-1)
+
+The call fails to establish or is immediately dropped after connecting. It can happen due to severely impaired network connection that cannot support any level of real-time audio/video communication. Peers cannot communicate at all due to critical issues such as:
+
+- Complete audio failure
+- No incoming video
+- Persistent video freezing
+
+
+### Tier 2 - Poor (Score 1-2)
+
+Experience is degraded across multiple dimensions. It can happen due to unstable, low-capacity connection struggling to support the demands of high-quality video calling. Peers can expect frequent problems like:
+
+- Audio choppiness
+- Artefacts in video
+- Severe latency issues
+
+
+### Tier 3 - Fair (Scores 3-4)
+
+Experience is moderate but inconsistencies exist. It can happen due to borderline connection with fluctuations in bandwidth, RTTs, or packet loss causing intermittent impacts. Peers may experience minor issues like:
+
+- Occasional audio blips
+- Video resolution downgrades
+- Bit of lag or video freezing
+
+
+### Tier 4 - Excellent (Scores 4-5)
+
+Users enjoy a high quality, reliable connection for uninterrupted communication. This happens because of an excellent network environment with consistent high bandwidth availability, low latency, and minimal congestion or packet loss. Any issues would be rare and minor in nature. This enables an engaging video call with:
+
+- Crisp, clear audio
+- Smooth, HD-resolution video
+- Real-time interactivity
diff --git a/docs/get-started/v2/get-started/insights/event-log.mdx b/docs/get-started/v2/get-started/insights/event-log.mdx
new file mode 100644
index 0000000000..756b3ab7ef
--- /dev/null
+++ b/docs/get-started/v2/get-started/insights/event-log.mdx
@@ -0,0 +1,28 @@
+---
+title: Event Log
+nav: 4.2
+---
+
+Event Log for a peer is a visual representation of all peer events that occur from the moment a peer joins a video session until they leave. This graph is useful in understanding what events happened for a peer in a sequential form or in parallel, hence useful in drawing co-relations to what went in a call. All peer related events can be abstracted in the following event types:
+
+1. **Audio** - event occurs when the peer turns on/off their mic
+2. **Video** - event occurs when the peer turns on/off their camera
+3. **Screen** - event when peer starts and stops sharing their screen
+4. **Device** - occurs when an input and output audio/video device is selected at preview/join screen or switched during a session. It also shows the device type selected. This is available only on web platform.
+5. **Error** - error events that happened for a peer during a session
+
+
+
+
+## Error events log
+
+The error log captures events that occur on the client side, which can disrupt call experience a peer during a call:
+
+| Error Event | Reason |
+| --------| ------ |
+| `client.disconnected` | The peer was disconnected due to network or Websocket failure |
+| `client.join.failed` | The peer could not join the call |
+| `client.publish.failed` | The peer failed to publish their audio/video |
+| `client.subscribe.failed` | The peer failed to subscribe to other peers’ audio/video |
diff --git a/docs/get-started/v2/get-started/insights/network-performance.mdx b/docs/get-started/v2/get-started/insights/network-performance.mdx
new file mode 100644
index 0000000000..b206c8f910
--- /dev/null
+++ b/docs/get-started/v2/get-started/insights/network-performance.mdx
@@ -0,0 +1,110 @@
+---
+title: Network Performance
+nav: 4.4
+---
+
+## Media Quality Types
+
+Quality measurement in video conferencing systems involves assessing both the outgoing and incoming media quality being received by the peer. Media quality can be observed in two dimensions:
+
+1. **Outgoing or Publisher Media Quality** - represents the quality of outgoing audio and video streams sent from a peer's device. It is influenced by factors such as the device's processing power, encoder efficiency, and the available uplink bandwidth.
+2. **Incoming or Subscriber Media Quality** - represents the quality of incoming audio and video streams received by a peer from other peers in the session. It is primarily impacted by either or both
+ - the network conditions on the publishing end from other ***remote peers.***
+ - factors like available downlink bandwidth, packet loss, jitter, and the efficiency of the decoder on the ***receiving local peer.***
+
+## Network metrics impact media quality
+
+There are several factors on which quality can be measured such as bitrate, jitter, round trip time, packet loss, CPU limitation, network limitation impact incoming and outgoing media quality of a video session.
+
+
+
+
+
+### Bitrate
+
+Bitrate defines the amount of video and audio data sent by the local peer to remote peers per second, measured in bits per second (bps). The maximum achievable outgoing bitrate depends on factors like:
+
+- RTT, packet loss, and available network bandwidth.
+- Bitrate values configured for the respective role under templates.
+
+#### Bitrate values
+- Standard bitrate value for audio is 32kbps; for video it can be configured under the template settings.
+- Higher bitrate value means more data per second is being sent, allowing for better video/audio quality. But if the bitrate exceeds network capacity it leads to packet loss and quality degradation.
+
+
+
+### Frame Rate (FPS)
+The frame rate refers to the number of video frames transmitted per second by the local peer to the remote peers in a video call.
+
+#### Frame rates and video quality
+- Higher outgoing frame rates result in smoother, less choppy video quality at the receiver's end. However, high frame rates require higher bitrates.
+- Lower outgoing frame rates allow the local peer to reduce their transmitted bitrate while maintaining visual quality.
+
+
+
+### Packet Loss
+Packet loss occurs when media packets being sent by the local peer fail to reach the remote peers, resulting in degraded audio/video quality of the peer. It occur due to network congestion, insufficient bandwidth, faulty network hardware, etc.
+
+#### Measuring Packet loss
+- Some amount of data loss is inevitable, so the severity is measured by the percentage of total packets lost.
+- Packet loss below 5% is generally considered acceptable and normal.
+- Beyond 5%, high outgoing packet loss can significantly degrade the video resolution, frame rate, and image quality observed by remote viewers. Audio can be jittery or broken up or may miss sections of audio.
+
+
+### **Round Trip Time (RTT)**
+
+Measures the time in milliseconds (ms) it takes for a packet of data to travel from the source(client) to the destination and back again.
+Higher the RTT, higher the latency.
+
+
+### Jitter
+
+Jitter refers to the variation in delay between delivered media packets being sent from the local peer to the remote peers. High outgoing jitter can cause received video to stutter or display jerky movements and make audio sound choppy or distorted to remote viewers.
+
+
+### Quality Limitations
+There are two main limitations that can severely impact the outgoing media quality transmitted from a local peer to remote peers:
+
+#### CPU Limitations
+
+Insufficient CPU cores or processing power can cause delays in encoding and transmitting outgoing audio/video packets. This leads to increased latency, jitter, and potential packet loss for the streams received by remote peers.
+
+#### Network Limitations
+
+Bandwidth, throughput, or network equipment constraints can create congestion and bottlenecks specifically along the local peer's upload path. This results in higher outgoing latency, jitter, and packet loss that significantly reduces the media quality observed by remote participants.
+
+
+
+
+
+
+### Bitrate
+When incoming media quality, bitrate is defined as the sum of all the bitrates published by all the remote peers in the call. It is defined using:
+
+- **Expected Bitrate** - The bitrate a client expects to receive based on the video resolution and layers selected according to the call template settings and the number of tracks being downloaded. This is configured for the role under templates.
+- **Actual Bitrate** - The bitrate actually received by the client, limited by the sender's upload bandwidth and network conditions` and `downlink network conditions of the peer`
+
+#### CQS and Bitrate
+- [Connection quality score](/get-started/v2/get-started/insights/connection-quality-score) uses the ratio of Actual Bitrate received/Expected Bitrate to determine its video and audio quality.
+- In ideal scenarios, the actual bitrate received should be equal to expected bitrate. If there's a delta in actual and expected bitrate then there's a drop in video quality consumed by the peer
+
+### Round Trip Time
+Measures the time in milliseconds (ms) it takes for a video or audio packet to travel from the remote peer to the local peer and back to the remote peer.
+
+High outgoing RTT reduces interactivity and introduces lag to remote users.
+
+
+### Packet Loss
+Packet loss occurs when media packets transmitted from remote peers fail to reach the local peer. This results in degradation of the incoming audio/video quality received by the local peer. Some potential root causes include Network congestion, Insufficient bandwidth, Faulty network hardware
+
+#### Packet loss on incoming media quality:
+
+- Minor packet loss is inevitable, so the severity is measured as a percentage of total packets expected to arrive vs packets lost.
+- Up to 5% loss is generally acceptable without noticeable quality impact.
+- Beyond 5%, high incoming packet loss can significantly lower the video resolution, frame rate, and image quality received by the local peer. Incoming audio can sound broken, intermittent, or have missing sections.
+
+
+
+
+
+
diff --git a/docs/get-started/v2/get-started/insights/peerinsights.mdx b/docs/get-started/v2/get-started/insights/peerinsights.mdx
new file mode 100644
index 0000000000..ae5bd3fdb5
--- /dev/null
+++ b/docs/get-started/v2/get-started/insights/peerinsights.mdx
@@ -0,0 +1,83 @@
+---
+title: Peer Insights
+nav: 4.1
+---
+
+When a user joins a session on 100ms, a corresponding peer is created for them on 100ms. Peer insights comprise a complete collection of events, an overall connection quality score, and network performance for a peer's entire session duration, providing comprehensive data to evaluate their overall experience. Key components include:
+
+
+
+Identify peer; their device and network setup.
+[Peer details →](/get-started/v2/get-started/insights/peerinsights/#peer-details)
+
+
+
+
+Chronological record of all events occurred for a peer during a session.
+[Event Log →](/get-started/v2/get-started/insights/event-log)
+
+
+
+
+
+Check overall network performance trend for a peer during a session.
+[CQS for a peer →](/get-started/v2/get-started/insights/connection-quality-score)
+
+
+
+Track underlying network conditions that impact media quality.
+[Network and media quality →](/get-started/v2/get-started/insights/network-metrics-media-quality)
+
+
+
+## Measuring peer level insights
+
+To debug the call experience of a peer and gain insights into their session, follow these steps:
+
+1. Go to the "Sessions" section in the [100ms dashboard](https://dashboard.100ms.live/dashboard)
+2. Select or enter a Session ID
+3. Select a peer or enter a peer ID to debug.
+4. Explore the insights for the selected peer, including peer details, events performed, and network performance metrics that impacted the media quality during the session.
+
+
+
+
+
+
+
+## Peer details
+
+Peer details, such as who the peer was, the session they belonged to, and a summary of their device setup, help you identify and contextualize the peer's experience.
+
+### Peer Information
+
+- **Name** -The name of the peer.
+- **Peer ID** -A unique 100ms-generated peer ID.
+- **User ID** -The user ID passed by you (optional).
+
+### Session information
+
+- **Session ID**: The ID of the session.
+- **Room ID** -The ID of the room to which this session belongs.
+- **Joined At** -The timestamp when the peer joins the session, shown in local time.
+- **Left At** -The timestamp when the peer leaves the session, shown in local time.
+- **Duration** -The total session duration for this peer in the format "HH:MM:SS". The maximum duration allowed per peer is 12 hours.
+- **Published** -The count of tracks published by the peer. The tracks can be audio, video, or screen-share tracks.
+- **End Reason** -The reason why the peer left the session. This can happen due to multiple reasons:
+
+ | End Reason field | Reason|
+ |---------| -------|
+ | Peer left | Peer left the session on their own.|
+ | Peer Disconnected | Network Disconnected or Websocket closed |
+ | Peer Removed | Peer was kicked out by another peer.|
+ | Peer Removed From Server | Peer was removed from backend APIs (End Room)|
+
+### Peer summary
+
+- **Platform** - The platform used by the peer, such as desktop or mobile.
+- **Operating System** - The operating system and its version used by the peer.
+- **Browser** - The browser and its version used by the peer.
+- **Framework** - The framework used by the peer.
+- **SDK version** - The version of the 100ms SDK used by the peer, which can be Web, Android, iOS, Flutter and React Native.
diff --git a/public/guides/CQS.mp4 b/public/guides/CQS.mp4
new file mode 100644
index 0000000000..d35798d87b
Binary files /dev/null and b/public/guides/CQS.mp4 differ
diff --git a/public/guides/event-log.mp4 b/public/guides/event-log.mp4
new file mode 100644
index 0000000000..c0ad08e9df
Binary files /dev/null and b/public/guides/event-log.mp4 differ
diff --git a/public/guides/incoming bitrate.mp4 b/public/guides/incoming bitrate.mp4
new file mode 100644
index 0000000000..763ce267a1
Binary files /dev/null and b/public/guides/incoming bitrate.mp4 differ
diff --git a/public/guides/peer-insights.mp4 b/public/guides/peer-insights.mp4
new file mode 100644
index 0000000000..e8bb683e99
Binary files /dev/null and b/public/guides/peer-insights.mp4 differ