A computer implemented method for detecting network congestions in a communication network enabling communications between computing devices connected to the network, comprising: collecting, from one or more computing devices of a computing system, network performance data at the level of an application executed on the one or more computing devices; identifying, by one or more servers of the computing system, one or more geographic areas covered by the communication network; determining, by one or more servers of the computing system, for each identified geographic area, a network performance metric for the identified geographic area based on the collected network performance data and at least on a difference between: a first average network speed of the communication network in the identified geographic area, during one or more first prior time periods in which the traffic volume or demand volume in the communication network is equal to or above a first threshold, and a second average network speed of the communication network in the identified geographic area during one or more second prior time periods in which the traffic volume or demand volume in the communication network is equal to or below a second threshold, the second threshold being lower than the first threshold; comparing, by one or more servers of the computing system, the respective one or more determined performance metrics of the one or more geographic areas to a threshold network performance metric, wherein the threshold network performance metric is determined by a congestion-analysis machine learning model; and identifying, by one or more servers of the computing system, one or more network traffic congestions in one or more of the identified geographic areas having a determined network performance metric below the threshold network performance metric. collecting, from one or more computing devices of a computing system, network performance data at the level of an application executed on the one or more computing devices; identifying, by one or more servers of the computing system, one or more geographic areas covered by the communication network; determining, by one or more servers of the computing system, for each identified geographic area, a network performance metric for the identified geographic area based on the collected network performance data and at least on a difference between: a first average network speed of the communication network in the identified geographic area, during one or more first prior time periods in which the traffic volume or demand volume in the communication network is equal to or above a first threshold, and a second average network speed of the communication network in the identified geographic area during one or more second prior time periods in which the traffic volume or demand volume in the communication network is equal to or below a second threshold, the second threshold being lower than the first threshold; comparing, by one or more servers of the computing system, the respective one or more determined performance metrics of the one or more geographic areas to a threshold network performance metric, wherein the threshold network performance metric is determined by a congestion-analysis machine learning model; and identifying, by one or more servers of the computing system, one or more network traffic congestions in one or more of the identified geographic areas having a determined network performance metric below the threshold network performance metric. a first average network speed of the communication network in the identified geographic area, during one or more first prior time periods in which the traffic volume or demand volume in the communication network is equal to or above a first threshold, and a second average network speed of the communication network in the identified geographic area during one or more second prior time periods in which the traffic volume or demand volume in the communication network is equal to or below a second threshold, the second threshold being lower than the first threshold;