Faits :
A.
Par contrat du 15 décembre 1980, Z._ est devenue locataire d'un appartement de cinq pièces à... (Genève), qu'elle occupait depuis 1960 avec son époux, initialement titulaire du bail. Le loyer a été fixé en dernier lieu à 9'624 fr. par an, charges non comprises, dès le 1 er avril 1997. Le bail est renouvelable d'année en année, sauf congé donné trois mois avant l'échéance du 31 mars.
La locataire a été hospitalisée du 31 janvier au 8 mars 2013, puis dès le 16 mai 2013, d'abord aux Hôpitaux universitaires de Genève (HUG), puis en gériatrie et enfin à l'Hôpital de.... A compter du 17 octobre 2013, elle a été placée dans un établissement médico-social (EMS) à.... (GE)
Par courrier du 31 juillet 2013, sa fille a annoncé à la bailleresse Société X._, devenue propriétaire de l'immeuble le 15 février 2012, que sa mère était très malade et qu'elle ignorait si celle-ci pourrait rentrer chez elle, mais que de toute façon, elle-même viendrait habiter dans l'appartement avec ses enfants. Elle a sollicité un entretien pour expliquer la situation dans le détail. Après avoir vendu la maison dont elle était propriétaire et qu'elle occupait en France, elle est venue s'installer dans l'appartement de sa mère avec ses deux enfants, qui ont été scolarisés dans le quartier dès la rentrée 2013. Par courrier du 26 août 2013, elle a annoncé à la régie qu'elle occupait l'appartement. Par courrier du 27 août, elle lui a encore confirmé qu'elle était venue à Genève pour s'occuper de sa mère hospitalisée depuis plusieurs mois, s'est plainte d'une fuite d'eau dans la cuisine et a demandé à la régie de prendre en charge les frais de branchement d'une machine à laver et d'un lave-vaisselle.
Le loyer a été débité du compte de la locataire au profit de la bailleresse de juillet à octobre 2013. Depuis la mi-octobre 2013, la locataire, qui bénéficie de prestations complémentaires, s'acquitte des frais d'EMS, de l'ordre de 6'500 fr. par mois.
Le 30 octobre 2013, la bailleresse a résilié le contrat de bail pour le 31 mars 2014, sans indication de motifs.
B.
B.a. Le 28 novembre 2013, la locataire a saisi l'autorité de conciliation.
Par courrier du 5 mars 2014, la bailleresse a indiqué au conseil de la locataire que le congé était motivé par le placement définitif de cette dernière en EMS.
Le 3 avril 2014, la locataire a porté l'action devant le Tribunal des baux et loyers du canton de Genève. Elle a conclu à l'annulation du congé et, subsidiairement, à l'octroi d'une prolongation de trois ans échéant le 31 mars 2017. Elle a fait valoir que le motif avancé pour la résiliation de son bail n'était qu'un prétexte; en réalité, la bailleresse visait à relouer cet appartement à un loyer plus élevé.
Statuant par jugement du 29 juin 2015, le Tribunal a considéré que le congé n'était ni contraire aux règles de la bonne foi ni de nature économique; il n'y avait pas non plus de disproportion grossière des intérêts en présence. Par conséquent, il a déclaré valable le congé donné pour le 31 mars 2014. Comme la locataire était domiciliée en EMS, une prolongation de bail ne se justifiait pas.
B.b. La locataire a appelé de ce jugement. Par arrêt du 17 mai 2016, la Cour de justice du canton de Genève a annulé le congé, estimant qu'il contrevenait à la bonne foi. Le motif censé justifier cette résiliation n'était pas réalisé au moment où celle-ci avait été notifiée; quand bien même ce serait le cas, la bailleresse avait admis ignorer ce qu'il en était précisément de la situation de la locataire au moment déterminant.
C.
La Société X._ recourt au Tribunal fédéral contre cette décision, concluant principalement à ce que le congé soit déclaré valable, toutes autres conclusions de la locataire étant rejetées.
Dans sa réponse, la locataire intimée conclut principalement à la confirmation de l'arrêt attaqué.
Les parties ont répliqué et dupliqué.
L'autorité précédente s'est référée à son arrêt.

Considérant en droit :
1.
Les contestations portant sur l'usage d'une chose louée sont de nature pécuniaire; elles ne peuvent donc être soumises au Tribunal fédéral, par un recours en matière civile, que si elles atteignent la valeur litigieuse prescrite par la loi. En matière de droit du bail à loyer, cette valeur s'élève à 15'000 fr. (<ref-law>). En cas de litige portant sur la résiliation d'un bail de durée indéterminée, la valeur litigieuse équivaut au loyer de la période minimale pendant laquelle le contrat subsiste si la résiliation n'est pas valable, période qui s'étend jusqu'à la date pour laquelle un nouveau congé peut être donné. Lorsque la contestation émane du locataire, la durée déterminante pour le calcul de la valeur litigieuse ne saurait être inférieure à la période de trois ans pendant laquelle l'art. 271a al. 1 let. e CO consacre l'annulabilité d'une résiliation signifiée après une procédure judiciaire (<ref-ruling> consid. 1.1; <ref-ruling> consid. 1.1 p. 197 et les arrêts cités). En l'occurrence, le loyer annuel payé par l'intimée se monte à 9'624 fr., de sorte que la valeur litigieuse minimale requise en matière de droit du bail est manifestement atteinte.
Pour le surplus, interjeté en temps utile (<ref-law>) par la bailleresse qui a succombé dans ses conclusions (<ref-law>) contre un arrêt rendu sur appel par un tribunal cantonal supérieur (<ref-law>), le recours en matière civile est recevable au regard de ces dispositions.
2.
2.1. Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut rectifier ou compléter les constatations de l'autorité précédente que si elles sont manifestement inexactes ou découlent d'une violation du droit au sens de l'<ref-law> (<ref-law>). «Manifestement inexactes» signifie ici «arbitraires» (<ref-ruling> consid. 2 p. 117; <ref-ruling> consid. 1.5). Encore faut-il que la correction du vice soit susceptible d'influer sur le sort de la cause (<ref-law>). La critique de l'état de fait retenu est soumise au principe strict de l'invocation énoncé par l'<ref-law> (<ref-ruling> consid. 2.3 p. 266 et les références). La partie qui entend attaquer les faits constatés par l'autorité précédente doit expliquer clairement et de manière circonstanciée en quoi ces conditions seraient réalisées (<ref-ruling> consid. 1.3.1 p. 18 et les références). Si elle souhaite obtenir un complètement de l'état de fait, elle doit aussi démontrer, par des renvois précis aux pièces du dossier, qu'elle a présenté aux autorités précédentes, en conformité avec les règles de la procédure, les faits juridiquement pertinents à cet égard et les moyens de preuve adéquats (<ref-ruling> consid. 2 p. 90).
En matière d'appréciation des preuves, le Tribunal fédéral n'intervient du chef de l'art. 9 Cst., qui prohibe l'arbitraire, que si le juge du fait n'a manifestement pas compris le sens et la portée d'un moyen de preuve, a omis sans raisons objectives de tenir compte de preuves pertinentes ou a effectué, sur la base des éléments recueillis, des déductions insoutenables (<ref-ruling> consid. 2.3 p. 265; <ref-ruling> consid. 4.2).
2.2. Le recours en matière civile peut être interjeté pour violation du droit fédéral (<ref-law>), y compris le droit constitutionnel (<ref-ruling> consid. 2.1 p. 247; <ref-ruling> consid. 2.4 p. 313). Le Tribunal fédéral applique le droit d'office (<ref-law>). Il n'est pas limité par les arguments soulevés dans le recours ni par la motivation retenue par l'autorité précédente; il peut donc admettre un recours pour d'autres motifs que ceux qui ont été articulés ou, à l'inverse, rejeter un recours en adoptant une argumentation différente de celle de l'autorité précédente (<ref-ruling> consid. 2; <ref-ruling> consid. 1.4; <ref-ruling> consid. 1.1 p. 104; <ref-ruling> consid. 2.2).
3.
3.1. Lorsque le bail est de durée indéterminée, ce qui est le cas lorsqu'il contient une clause de reconduction tacite, chaque partie est en principe libre de résilier le contrat pour la prochaine échéance contractuelle ou légale en respectant le délai de congé (cf. <ref-law>; <ref-ruling> consid. 4.1; <ref-ruling> consid. 2.1; arrêt 4A_293/2016 du 13 décembre 2016 consid. 5.2).
3.2. Le bail est en effet un contrat qui n'oblige les parties que jusqu'à l'expiration de la période convenue; au terme du contrat, la liberté contractuelle renaît et chacun a la faculté de conclure ou non un nouveau contrat et de choisir son cocontractant (arrêts 4A_293/2016 précité consid. 5.2.1; 4A_484/2012 du 28 février 2013 consid. 2.3.1). La résiliation ordinaire du bail ne suppose pas l'existence d'un motif de résiliation particulier (<ref-law>; <ref-ruling> consid. 4.1; <ref-ruling> consid. 2.1 p. 62). Le bailleur peut ainsi congédier le locataire pour exploiter son bien de la façon la plus conforme à ses intérêts (<ref-ruling> consid. 3 p. 194), pour effectuer des travaux de transformation ou de rénovation importants qui entravent considérablement l'usage de la chose louée (<ref-ruling> consid. 3.2.1 p. 93; <ref-ruling> consid. 4.1), pour optimiser son rendement dans les limites fixées par la loi (<ref-ruling> consid. 2 p. 192), ou pour utiliser les locaux lui-même ou les céder à ses proches (arrêts 4A_198/2016 du 7 octobre 2016 consid. 4.3 et 4.5; 4A_18/2016 du 26 août 2016 consid. 3.3 et 4).
3.3. La seule limite à la liberté contractuelle des parties découle des règles de la bonne foi; lorsque le bail porte sur une habitation ou un local commercial, le congé est annulable lorsqu'il contrevient aux règles de la bonne foi (<ref-law>; cf. également <ref-law>). Dans ce cadre, le motif de résiliation revêt une importance décisive: le congé doit être motivé si l'autre partie le demande (<ref-law>); une motivation lacunaire ou fausse peut être l'indice d'une absence d'intérêt digne de protection à la résiliation (ATF <ref-ruling> consid. 2.1 p. 59 et les arrêts cités).
La protection conférée par les art. 271-271a CO procède à la fois du principe de la bonne foi (<ref-law>) et de l'interdiction de l'abus de droit (<ref-law>).
Les cas typiques d'abus de droit (<ref-law>), à savoir l'absence d'intérêt à l'exercice d'un droit, l'utilisation d'une institution juridique contrairement à son but, la disproportion grossière des intérêts en présence, l'exercice d'un droit sans ménagement et l'attitude contradictoire, permettent de dire si le congé contrevient ou non aux règles de la bonne foi au sens de l'<ref-law> (<ref-ruling> consid. 3.2.1 p. 92; <ref-ruling> consid. 2 p. 192; <ref-ruling> consid. 3 p. 108). Il n'est toutefois pas nécessaire que l'attitude de la partie donnant congé à l'autre constitue un abus de droit «manifeste» au sens de l'<ref-law> (<ref-ruling> consid. 2 p. 192). Ainsi, le congé doit être considéré comme abusif lorsqu'il ne répond à aucun intérêt objectif, sérieux et digne de protection et qu'il apparaît ainsi purement chicanier, lorsqu'il est fondé sur un motif qui ne constitue manifestement qu'un prétexte ou lorsque sa motivation est lacunaire ou fausse (<ref-ruling> consid. 4.1; <ref-ruling> consid. 2; <ref-ruling> consid. 4.1).
Un congé n'est pas contraire aux règles de la bonne foi du seul fait que la résiliation entraîne des conséquences pénibles pour le locataire (<ref-ruling> consid. 4.1) ou que l'intérêt du locataire au maintien du bail paraît plus important que celui du bailleur à ce qu'il prenne fin (arrêt précité 4A_293/2016 consid. 5.2.2 et les arrêts cités). Cette pesée des intérêts intervient dans l'examen de la prolongation du bail (arrêt précité 4A_484/2012 consid. 2.3.1 et les arrêts cités).
3.4. Pour décider de la validité d'un congé ordinaire, il faut en premier lieu connaître le motif réel de ce congé. Cette détermination est une constatation de fait (<ref-ruling> consid. 2 p. 192), que le Tribunal fédéral ne corrige qu'aux conditions rappelées ci-dessus (consid. 2.1). Savoir en revanche si le congé contrevient aux règles de la bonne foi relève du droit (arrêt 4A_705/2014 du 8 mai 2015 consid. 4.2). Si le bailleur fournit un faux motif à l'appui de la résiliation et qu'il n'est pas possible d'en établir le motif réel, il faut en déduire que le congé ne repose sur aucun motif sérieux ou en tout cas sur aucun motif légitime et avouable, ce qui justifie son annulation (ATF <ref-ruling> consid. 2.1 p. 62; <ref-ruling> consid. 4b p. 240; arrêt précité 4A_198/2016 consid. 4.4.1).
Pour se prononcer sur la validité de la résiliation, le juge doit se placer au moment où elle a été notifiée (<ref-ruling> consid. 4.1 p. 497; <ref-ruling> consid. 2.1 in fine p. 62). Des faits survenus ultérieurement ne sont pas susceptibles d'influer a posteriori sur cette qualification; tout au plus peuvent-ils fournir un éclairage sur les intentions du bailleur au moment de la résiliation (arrêts 4A_67/2016 du 7 juin 2016 consid. 6.1; 4A_430/2013 du 14 février 2014 consid. 2; 4A_155/2013 du 21 octobre 2013 consid. 2.3).
3.5. Il appartient au locataire qui demande l'annulation du congé de prouver les circonstances permettant de déduire qu'il contrevient aux règles de la bonne foi. Le bailleur qui résilie doit toutefois collaborer à la manifestation de la vérité en indiquant le motif du congé s'il en est requis (cf. <ref-law>) et, en cas de contestation, fournir tous les éléments en sa possession nécessaires à la vérification du motif invoqué (ATF <ref-ruling> consid. 4.1 et l'arrêt cité; arrêt 4A_474/2016 du 20 février 2017 consid. 2.2.1).
4.
4.1. En l'espèce, la bailleresse a résilié un bail de durée indéterminée pour son échéance contractuelle. Elle n'a pas indiqué, dans le congé qu'elle a notifié à la locataire le 30 octobre 2013, le motif de sa décision. Par pli du 5 mars 2014, soit au cours de la procédure de conciliation, elle lui a toutefois fait savoir que la résiliation était motivée par le fait que la locataire avait été placée de façon définitive en EMS. La cour cantonale a retenu que ce motif n'existait pas au moment où la résiliation a été signifiée et que, même à admettre qu'il ait existé, il n'avait pas été démontré que la bailleresse en avait eu connaissance au moment de l'envoi de la résiliation; en effet, celle-ci avait admis ignorer ce qu'il en était précisément. La cour cantonale en a déduit que la résiliation avait été donnée abusivement et devait être annulée, sans qu'il soit nécessaire d'établir pour quel motif la résiliation avait réellement été donnée.
4.2. Sur le plan des faits, la recourante estime arbitraires les constatations de la cour cantonale selon lesquelles le motif serait inexistant, la bailleresse ignorant au demeurant quelle était la situation précise.
Au préalable, il sied de souligner que le mémoire de recours comporte toute une série de faits non retenus dans l'arrêt attaqué, que la recourante ne démontre pas avoir régulièrement allégués, qui sont par conséquent nouveaux et donc irrecevables (<ref-law>; cf. supra consid. 2.1 et l'ATF cité 140 III 86 consid. 2 p. 90). Cette irrecevabilité affecte également les éléments mentionnés dans la réplique, qui seraient prétendument survenus après le dépôt du recours, ainsi que les moyens de preuve produits avec cette écriture.
Sur un plan juridique, la recourante soutient avoir agi en respectant les règles de la bonne foi. En considérant différemment, la cour cantonale aurait violé l'<ref-law>.
4.3. D'après l'arrêt attaqué, la locataire a été placée dès le 17 octobre 2013 dans un EMS à.... Avant cela, elle avait été hospitalisée du 31 janvier au 8 mars 2013, puis dès le 16 mai 2013, d'abord aux HUG, puis en gériatrie et enfin à l'Hôpital de....
Pour juger si le congé contrevient aux règles de la bonne foi, il ne s'agit pas de déterminer si la locataire était placée définitivement en EMS au moment de la résiliation de son bail, mais bien plutôt de savoir si la bailleresse pouvait légitimement déduire des éléments dont elle avait connaissance le 30 octobre 2013 que la locataire ne reviendrait plus dans son logement. En effet, si tel est le cas, l'on ne saurait lui faire grief d'avoir agi à l'encontre des règles de la bonne foi.
Pour accréditer cette thèse, la recourante s'appuie en particulier sur deux courriers rédigés par sa fille. Le premier, daté du 31 juillet 2013, contient notamment ceci: « Ma Maman a été très malade, et j'ai décidé de me rapprocher d'elle en revenant à Genève. Elle va beaucoup mieux, mais on ne sait pas encore si elle pourra rentrer chez elle, mais si oui, je serai là. Et si non, je serai là aussi et pourrai aller la voir nettement plus facilement qu'en habitant vers Toulouse. Je profite de son absence pour faire faire des travaux de rafraichissement [sic!] (peinture) dans l'appartement, et je vais venir y habiter avec mes enfants (...) ». Le second courrier, du 27 août 2013, est rédigé comme suit: «Je suis la fille de Madame Z._ (...). Elle est actuellement, et ce depuis plusieurs mois, hospitalisée et je suis revenue à Genève pour m'occuper d'elle (je vivais dans le Sud-Ouest de la France). Je voulais vous signaler qu'il y a un trou dans le conduit d'eau des robinets de l'évier, dû à l'ancienneté, et la fuite est d'importance. Serait-il possible d'envoyer un plombier pour réparer? Je désire également brancher une machine à laver et un lave vaisselle [sic!] dans la cuisine. Je ne sais pas si la régie prend ce genre de travaux en charge, mais ce serait très gentil de votre part de bien vouloir les faire exécuter en même temps que la réparation du robinet. (...) ». Il en ressort en substance que la locataire, une personne âgée, était hospitalisée depuis plusieurs mois et que son état de santé la rendait dépendante d'une aide externe que sa fille s'offrait de lui prodiguer, en cas de retour à son domicile. Alors que dans la missive du 31 juillet 2013, la question d'un éventuel retour de la locataire dans son appartement était évoquée, il n'y était plus fait référence un mois après, dans le courrier du 27 août 2013. A cette date, l'auteur des lignes précitées s'était installée dans l'appartement loué avec ses enfants. Ce fait, ainsi que les modifications qu'elle avait apportées à ce logement, laissaient entrevoir que son installation n'avait rien de transitoire, mais revêtait plutôt un caractère pérenne. Dans ces conditions, la bailleresse pouvait raisonnablement en déduire que la locataire ne réintégrerait pas l'appartement loué et, en conséquence, résilier le contrat de bail. On ne saurait lui faire grief, en la circonstance, d'avoir agi de manière contraire aux règles de la bonne foi.
Certes, la bailleresse aurait pu chercher à recueillir de plus amples informations sur la situation de la locataire avant de résilier le contrat de bail. L'administrateur de la bailleresse a admis en audience que l'intéressée n'avait pas cherché à prendre contact avec la locataire avant de lui signifier la résiliation et ignorait si la régie l'avait fait. Par la suite, la bailleresse a obtenu une attestation de l'Office cantonal de la population de Genève, certifiant que la locataire avait son domicile à l'EMS. Ce document remonte toutefois au 20 décembre 2013, soit bien après la résiliation de bail; il n'a donc pas pu motiver sa décision, mais tout au plus la conforter. Cela étant, ce manque de prévention ne saurait suffire à conclure à la mauvaise foi de la bailleresse. Il est ainsi inutile d'examiner le grief selon lequel la cour cantonale aurait arbitrairement renoncé à entendre les deux témoins dont la bailleresse avait vainement sollicité l'audition en première instance, et qui étaient censés conforter la thèse selon laquelle elle disposait d'autres et plus amples informations au moment déterminant.
Il est vrai aussi que le placement de la locataire en EMS ne revêtait pas, le 30 octobre 2013 déjà, un caractère définitif. La cour cantonale a ainsi constaté que la situation était encore incertaine à cette date. Il apparaît également que la locataire est revenue à plusieurs reprises et régulièrement dans l'appartement pour y déjeuner et passer du temps avec sa famille, mais sans jamais y dormir. Cela étant, le placement en EMS n'est en principe guère conçu comme une solution provisoire dans l'attente d'un rétablissement permettant un retour à domicile, lorsqu'il intervient comme en l'espèce pour une personne âgée à la suite d'une longue hospitalisation. Il ne saurait donc être reproché à la bailleresse de s'être laissée aller à de pures conjectures dépourvues de fondement concret, sur la base des éléments qui avaient été portés à sa connaissance. Ces considérations n'enlèvent dès lors rien aux conclusions qui précèdent, selon lesquelles la bailleresse ne se sert pas d'un prétexte pour justifier la résiliation de bail, et ne viole ainsi pas les règles de la bonne foi.
S'agissant enfin de la question des intérêts en présence, dont la disproportion manifeste est également susceptible de conférer à la résiliation un caractère abusif, il n'apparaît pas que l'on soit - dans ce cas précis - dans une situation présentant un déséquilibre tel qu'il commanderait d'annuler la résiliation. L'intimée objecte que le congé aurait dû être précédé d'une sommation. Toutefois, la jurisprudence à laquelle elle se réfère (arrêt 4A_464/2014 du 21 novembre 2014) concerne un cas fort différent, dans lequel le congé ordinaire motivé par l'état insalubre de l'appartement a été jugé inutilement rigoureux; le bailleur disposait en effet d'une solution nettement moins dommageable pour la locataire, soit le congé extraordinaire de l'<ref-law>, qui aurait nécessité une sommation préalable et permis de ce fait à la locataire de rétablir la situation. Tel n'est manifestement pas le cas dans cette affaire.
Ainsi, c'est à tort que la cour cantonale a considéré que le congé contrevenait aux règles de la bonne foi. Le grief de violation de l'<ref-law> apparaît fondé. Le recours devant ainsi être admis et le congé validé, il n'y a pas lieu de se pencher sur les autres griefs concernant l'arbitraire dans l'établissement des faits (art. 9 Cst.) et la violation des règles sur le fardeau de la preuve (<ref-law>).
4.4. Dans sa réponse au recours, l'intimée a sollicité subsidiairement une première prolongation de bail échéant le 31 mars 2017, ainsi que l'autorisation de libérer le logement en tout temps, moyennant un préavis de 15 jours pour le 15 ou la fin d'un mois. Vu la solution qu'elle a adoptée, la cour cantonale ne s'est pas penchée sur la question de la prolongation et n'a fait aucune constatation qui permette au Tribunal fédéral de procéder à l'appréciation des intérêts en présence en vue de statuer à cet égard. Partant, il se justifie de renvoyer la cause à l'autorité cantonale pour qu'elle se prononce sur une éventuelle prolongation du bail (cf. arrêt 4A_631/2010 du 4 février 2011 consid. 2.8).
La question des frais et dépens de la procédure cantonale ne se pose pas (arrêts 4A_257/2015 du 11 janvier 2016 consid. 5; 4A_285/2013 du 7 novembre 2013 consid. 3). En effet, le droit genevois prévoit qu'il n'est pas prélevé de frais ni alloué de dépens devant la juridiction des baux et loyers (art. 22 al. 1 LaCC en relation avec l'<ref-law>; <ref-ruling> consid. 2.1 p. 185 s.).
5.
Comme le litige devant le Tribunal fédéral portait sur la validité du congé, il faut constater que l'intimée succombe. Par conséquent, les frais judiciaires et les dépens seront mis à sa charge (art. 66 al. 1 et art. 68 al. 1 et 2 LTF).

Par ces motifs, le Tribunal fédéral prononce:
1.
Le recours est admis et l'arrêt attaqué est annulé.
2.
La résiliation de bail donnée par la recourante à l'intimée le 30 octobre 2013 pour le 31 mars 2014 pour l'appartement de cinq pièces au 3ème étage d'un immeuble à... (Genève) est valable.
3.
La cause est renvoyée à la cour cantonale pour que celle-ci statue sur la demande en prolongation du bail.
4.
Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge de l'intimée.
5.
L'intimée versera à la recourante une indemnité de 2'500 fr. à titre de dépens.
6.
Le présent arrêt est communiqué aux mandataires des parties et à la Chambre des baux et loyers de la Cour de justice du canton de Genève.
Lausanne, le 15 mars 2017
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: Kiss
La Greffière: Monti