Faits :
A.
A.a. Par contrat de bail du 28 mai 1999, D._et E._ et F._ SA, propriétaires, ont cédé à B._ et C._, locataires, l'usage d'un appartement de cinq pièces au 2e étage d'un immeuble - datant de 1996 - situé à l'avenue... à Genève.
Le bail, conclu initialement du 16 juin 1999 au 30 juin 2000, s'est renouvelé ensuite tacitement. Le loyer annuel a été fixé à 18'792 fr., soit 1'566 fr. mensuels. Les charges relatives au chauffage et à l'eau chaude ont été fixées annuellement à 1'800 fr., soit 150 fr. par mois.
A.b. Le bâtiment, qui est devenu propriété de A._ le 1er novembre 2005, était classé (depuis 1997) pour 20 ans en catégorie 2 HLM de la loi genevoise sur le logement et la protection des locataires (LGL; I 4 05).
Le Conseil d'Etat, qui a fixé l'état locatif provisoire du bâtiment par arrêté du 16 septembre 1996, a alloué une subvention aux propriétaires dès le 1er janvier 1997, exonéré fiscalement l'immeuble (arrêté du 13 décembre 2000) et adapté l'état locatif. La subvention a ensuite été réduite deux fois successivement et l'état locatif adapté (7 novembre 2012, 17 octobre 2014), ce qui a donné lieu à des modifications de loyer qui ont été notifiées aux locataires (14 novembre 2012, 11 novembre 2014).
La dernière modification de loyer (avis du 11 novembre 2014), qui portait le loyer à 24'936 fr. (soit 2'078 fr. par mois) dès le 1er janvier 2015, a été contestée par les locataires. Elle a donné lieu à une procédure qui s'est terminée devant la Chambre administrative de la Cour de justice le 22 janvier 2019 (celle-ci confirmant le montant de l'état locatif et, partant, écartant la réclamation des locataires).
A.c. Par courrier du 29 août 2016, A._ (ci-après également : la bailleresse) a informé les locataires que la sortie de l'immeuble du contrôle de l'Etat, prévue pour le 31 décembre 2016, entraînerait des modifications de leur contrat de bail. Elle leur proposait d'appliquer une baisse de loyer de 15,25% pour leur appartement, correspondant principalement à la baisse du taux hypothécaire des années précédentes, celle-ci modifiant le calcul du rendement net admissible de l'immeuble selon l'art. 269 CO. Un avis de baisse de loyer était joint au courrier, le loyer étant dorénavant arrêté à 19'548 fr. (soit 1'629 fr. par mois) dès le 1er janvier 2017.
Par courrier du 28 septembre 2016, la bailleresse a informé les locataires que la sortie du contrôle étatique était en réalité fixée au 31 décembre 2017 (et non au 31 décembre 2016) et que l'avis de baisse qui leur avait été notifié ne serait applicable qu'à partir du 1er janvier 2018.
Le 31 octobre 2016, les locataires ont déposé une requête en diminution de loyer devant la Commission de conciliation en matière de baux et loyers. Acceptant la baisse de loyer du 28 septembre 2016 à titre d'acompte, ils ont conclu à une baisse de loyer générale de 40% dès le 1er janvier 2018.
Lors de l'audience de conciliation du 11 janvier 2017, les parties ont convenu de retirer chacune leurs conclusions respectives.
Par courrier du 11 août 2017, les locataires ont à nouveau sollicité de la bailleresse une baisse de loyer de 40% dès le 1er janvier 2018, en raison de la sortie de l'immeuble du contrôle de l'Etat à cette date.
Par courrier du 28 août 2017, la bailleresse leur a opposé un refus.
B.
B.a. Le 26 septembre 2017, les locataires ont ouvert action en justice contre la bailleresse. La conciliation s'étant soldée par un échec, ils ont conclu préalablement, devant le Tribunal des baux et loyers de Genève, à ce que la bailleresse produise toutes les pièces permettant d'effectuer un calcul de rendement au sens de l'art. 269 CO et, principalement, à ce que le Tribunal fixe le loyer annuel de l'appartement à 14'992 fr. (soit 1'249 fr.30 par mois), provisions pour chauffage et eau chaude non comprises, dès le 1er janvier 2018, et à la condamnation de la bailleresse à rembourser le trop-perçu de loyer.
La défenderesse a conclu au rejet de la demande.
Par ordonnance du 5 juin 2018, le Tribunal des baux et loyers a fixé un délai à la défenderesse pour qu'elle dépose toutes les pièces requises et produise le calcul de rendement.
La bailleresse a refusé de produire les pièces en précisant que l'état locatif n'avait pas varié entre le 1er janvier 2015 et le 31 décembre 2017.
B.b. Par jugement du 28 février 2019, le Tribunal des baux et loyers a débouté les locataires de leurs conclusions en diminution de loyer.
En substance, les premiers juges ont admis que la méthode de calcul fondée sur le rendement net était applicable et observé que la bailleresse n'avait pas versé les documents indispensables à ce calcul. Le refus de la bailleresse étant fautif, il s'imposait de prendre en compte les statistiques cantonales pour déterminer si le loyer était abusif. Se référant aux statistiques applicables aux nouveaux locataires d'un logement à loyer libre de cinq pièces en ville de Genève dans un immeuble construit entre 1991 et 2000, les juges sont parvenus à la conclusion que le loyer de l'appartement était inférieur, qu'il n'était dès lors pas abusif et, partant, que les locataires ne pouvaient pas prétendre à une baisse de loyer.
B.c. Par arrêt du 28 octobre 2019, la Chambre des baux et loyers de la Cour de justice du canton de Genève a admis l'appel interjeté par les locataires et, statuant à nouveau, fixé à 17'292 fr. (soit 1'441 fr. par mois), charges non comprises, dès le 1er janvier 2018, le loyer annuel de l'appartement occupé par les locataires. Elle a condamné la défenderesse à verser à ceux-ci, solidairement entre eux, le trop-perçu de loyer en découlant, avec intérêts à 5% l'an dès l'entrée en force de l'arrêt cantonal.
En substance, la Cour de justice a confirmé qu'il se justifiait d'appliquer la méthode absolue à la demande de diminution de loyer des locataires. Contrairement au Tribunal des baux et loyers, elle a considéré qu'il n'y avait pas lieu de se fonder sur les statistiques cantonales, puisque les pièces produites durant la procédure civile rendaient possible un calcul du rendement net, celui-ci la menant à fixer le loyer net annuel à 17'292 fr.
C.
La bailleresse exerce un recours en matière civile au Tribunal fédéral contre cet arrêt cantonal. Elle conclut à sa réforme en ce sens que la demande en diminution de loyer soit rejetée et, subsidiairement, à l'annulation de l'arrêt attaqué et au renvoi de la cause à l'autorité cantonale pour nouvelle décision. La recourante invoque la violation des art. 269 et 270a CO.
Les intimés ont présenté une demande d'assistance judiciaire. Par ordonnance présidentielle du 13 janvier 2020, cette requête a été admise et Me Pierre-Yves Bosshard a été désigné en qualité d'avocat d'office des intimés.
Dans leur réponse, les intimés concluent au rejet du recours.
Chacune des parties a encore déposé des observations.
Considérant en droit :
1.
1.1. Interjeté en temps utile (art. 100 al. 1 LTF) par la bailleresse qui a succombé dans ses conclusions (art. 76 al. 1 LTF) contre une décision finale (art. 90 LTF), prise sur appel par le tribunal supérieur du canton de Genève (art. 75 LTF), dans une affaire de bail (art. 72 al. 1 LTF), dont la valeur litigieuse atteint le seuil de 15'000 fr. requis en cette matière (art. 74 al. 1 let. a LTF), le recours en matière civile est recevable.
1.2. Sous réserve de la violation des droits constitutionnels (art. 106 al. 2 LTF), le Tribunal fédéral applique le droit d'office (art. 106 al. 1 LTF).
2.
Est litigieuse la question de savoir si les locataires sont en droit de demander une baisse de loyer, en se fondant sur la méthode absolue (calcul du rendement net), à l'occasion de la sortie du contrôle cantonal des loyers de l'immeuble (HLM) comprenant leur logement. Alors que les locataires le soutiennent et que la bailleresse le réfute, tant le Tribunal des baux et loyers (sur le principe) que la Cour de justice l'ont admis.
La présente procédure porte exclusivement sur cette question.
2.1. A la suite d'une analyse des art. 269, 269a et 270a CO, tenant compte de la jurisprudence déjà rendue en la matière, des avis exprimés par la doctrine et effectuant un examen dans la perspective du bailleur et dans celle du locataire, le Tribunal fédéral a jugé que tant le bailleur que le locataire peuvent, après la sortie de l'immeuble du contrôle étatique, se prévaloir, devant le juge civil, de la méthode absolue (calcul du rendement net) (arrêt 4A_157/2019 du 21 avril 2020 consid. 3 destiné à la publication; approuvant la décision : PHILIPPE CONOD, Protection contre les congés abusifs, protection contre les loyers abusifs, même combat ?, Newsletter, Bail.ch juillet 2020, ch. III.5).
Dans la perspective du locataire, la Cour de céans a eu l'occasion de souligner qu'on ne saurait refuser à celui-ci une méthode de calcul (fondée sur le rendement net) dont le bailleur peut bénéficier, alors même qu'il existe de nombreux cas dans lesquels le calcul du rendement net entrepris à la sortie du contrôle étatique a conduit - de manière paradoxale - à un loyer inférieur à celui fixé précédemment durant la période de contrôle (arrêt 4A_157/2019 déjà cité consid. 3.2.2). A cet égard, il n'importe de savoir si l'autorité administrative a déjà pu (ou non) contrôler le rendement net de l'appartement et, le cas échéant, quels critères elle a alors pris en compte. Il demeure que, lorsque l'immeuble concerné sort du contrôle de l'Etat, le juge civil doit pouvoir se prononcer, sans aucune restriction, en appliquant l'art. 269 CO prévu initialement pour les « loyers libres » (arrêt précité consid. 3.2.2).
2.2. En l'espèce, les locataires ont conclu à ce que les autorités précédentes procèdent, après la sortie de l'immeuble du contrôle étatique, à un calcul fondé sur le rendement net et, en fonction de ce calcul, qu'ils fixent le loyer annuel de l'appartement à 14'992 fr. (soit 1'249 fr.30 par mois), charges non comprises, dès le 1er janvier 2018. Tant le Tribunal des baux à loyer que la cour cantonale ont jugé qu'il se justifiait d'appliquer la méthode absolue. La première a toutefois considéré que, à défaut d'avoir en mains les pièces utiles, il convenait de se fonder sur les statistiques cantonales; la seconde a jugé qu'elle disposait des documents nécessaires et a fixé le loyer à 17'292 fr. (soit 1'441 fr. par mois), charges non comprises, dès le 1er janvier 2018.
Au vu des principes rappelés ci-dessus, on ne saurait reprocher à la cour cantonale d'avoir appliqué la méthode absolue (calcul du rendement net) et d'avoir fixé le loyer annuel en se conformant à cette méthode, étant ici précisé que le calcul concret opéré par la cour cantonale n'est, lui, pas contesté par la recourante et qu'il n'y a dès lors pas lieu de s'y arrêter.
Les critiques soulevées par la recourante, qui tendent toutes à interdire au locataire d'invoquer la méthode absolue (calcul du rendement net) pour justifier une demande de baisse de loyer, sont infondées.
3.
Il résulte des considérations qui précèdent que le recours en matière civile doit être rejeté.
La recourante, qui succombe, supportera les frais judiciaires (art. 66 al. 1 LTF). Les dépens en faveur des intimés, à verser à leur mandataire d'office, seront pris en charge par la recourante (art. 66 al. 1, 68 al. 1 et 2 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 4'000 fr., sont mis à la charge de la recourante.
3.
La recourante versera à l'avocat d'office des intimés le montant de 5'000 fr. à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice du canton de Genève, Chambre des baux et loyers.
Lausanne, le 4 septembre 2020
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Kiss
Le Greffier : Piaget