Faits:
A. Par contrat de bail du 12 décembre 1986, A._ et B._ (locataires) ont pris en location une place de parc pour voiture automobile à l'extérieur d'un immeuble locatif sis à Genève et appartenant à la société immobilière X._ SA (bailleresse); ils ont également loué un appartement dans le même immeuble. Le loyer de la place de parc était à l'origine de 816 fr. par année; il a été porté à 996 fr. dès le 1er janvier 1992.
B. Par avis de majoration du 16 septembre 2008, la bailleresse a déclaré porter le loyer annuel de la place de parc à 1'800 fr. dès le 1er janvier 2009 en adaptation aux loyers usuels pratiqués dans le quartier. La bailleresse a également notifié aux locataires un avis de majoration pour le loyer relatif à l'appartement.
Les locataires ont contesté les hausses en temps utile devant la Commission de conciliation en matière de baux à loyer. La bailleresse a saisi le Tribunal des baux et loyers d'une requête en validation de la hausse du loyer afférent à la place de parc. La requête a été déclarée irrecevable par jugement du 3 juin 2009. L'appel de la bailleresse a été rejeté.
C. Par avis officiel de majoration du 18 juin 2009, la bailleresse a déclaré porter le loyer annuel pour la place de parc à 2'160 fr. dès le 1er janvier 2010. Elle a précisé que le loyer passait de 83 fr. à 180 fr. par mois parce qu'il n'avait pas été augmenté depuis dix-sept ans, que les dernières places de parc louées dans l'immeuble l'avaient été au montant de 180 fr. par mois, et qu'à titre comparatif, une place dans un parking situé à quatre minutes à pied coûtait 330 fr. par mois; elle a ajouté que l'État de Genève proposait des places à 475 fr. par mois au centre de la ville et à 220 fr. par mois en ville. Les locataires ont contesté la hausse devant l'autorité de conciliation sans qu'un arrangement puisse être trouvé.
La bailleresse a saisi le Tribunal des baux et loyers en validation de la hausse. A titre reconventionnel, les locataires ont demandé une réduction de loyer de 25% ensuite de la baisse du taux hypothécaire de 6,75% en décembre 1991 à 3,25% en juin 2009. Statuant par jugement du 27 avril 2010 notifié aux parties le 4 mai 2010, le Tribunal a débouté la bailleresse de ses conclusions en validation de la hausse de loyer au motif qu'elle n'avait pas fourni d'exemples comparatifs en nombre suffisant; il a en revanche admis que la baisse du taux hypothécaire justifiait une réduction de loyer de 27,01%, de sorte que les conclusions des locataires demandant une baisse de 25% étaient légitimes. Le Tribunal a dès lors fixé le loyer de la place de parc à 797 fr. par an (soit 66 fr. 40 par mois) dès le 1er janvier 2010.
La bailleresse a interjeté appel. Par arrêt du 17 octobre 2011, la Chambre des baux et loyers de la Cour de justice s'est ralliée aux motifs des premiers juges et a rejeté l'appel.
D. Devant le Tribunal fédéral, la bailleresse (ci-après: la recourante) interjette un recours en matière civile tendant à faire valider la hausse de loyer à 180 fr. par mois dès le 1er janvier 2010 et à faire annuler la baisse de loyer accordée aux locataires (ci-après: les intimés). Ces derniers concluent au rejet du recours. L'autorité précédente se réfère à son arrêt.
Les deux parties ont par la suite déposé des observations supplémentaires. La présidente de la cour de céans a accordé l'effet suspensif par ordonnance du 1er décembre 2011.

Considérant en droit:
1. Dans les causes de droit du bail à loyer, la valeur litigieuse ouvrant la voie du recours en matière civile est de 15'000 fr. (<ref-law>). Elle est déterminée par les conclusions restées litigieuses devant l'instance précédente (<ref-law>). Le montant de la demande principale et celui de la demande reconventionnelle ne sont pas additionnés (<ref-law>). Les prestations périodiques ont la valeur du capital qu'elles représentent; si leur durée est indéterminée ou illimitée, le capital correspond aux prestations durant vingt ans (<ref-law>). En instance d'appel, la conclusion principale portait sur une augmentation de loyer de 97 fr. par mois, si bien que la valeur litigieuse dans la présente cause s'élève à 23'280 fr. (97 x 12 x 20); le recours est recevable ratione valoris.
La bailleresse ne conteste plus que la place de parc présente un lien fonctionnel avec le logement donné à bail aux intimés (cf. <ref-law>; <ref-ruling> consid. 2) et que les dispositions sur la contestation du loyer sont en conséquence applicables. Il n'y a plus à y revenir.
2. La recourante se plaint d'une violation des <ref-law> et 11 OBLF (RS 221.213.11). L'autorité cantonale aurait erré en exigeant que la partie bailleresse fournisse des exemples de loyers afférents à des places de parc comparables à celle louée par les intimés quant à la dimension, l'équipement, l'état et l'année de construction; en réalité, l'emplacement serait le seul élément comparatif déterminant pour ce type d'objet, qui consiste en un rectangle d'asphalte propre à permettre le stationnement d'une voiture.
Le loyer n'est en règle générale pas abusif s'il se situe dans les limites des loyers usuels dans la localité ou dans le quartier (<ref-law>). Selon l'<ref-law>, les loyers déterminants pour établir les loyers usuels doivent se rapporter à des logements comparables à la chose louée quant à l'emplacement, la dimension, l'équipement, l'état et l'année de construction (al. 1); n'entrent toutefois pas en ligne de compte les loyers découlant du fait qu'un bailleur ou un groupe de bailleurs domine le marché (al. 3). En règle générale, le juge doit disposer d'au moins cinq exemples comparatifs, à savoir cinq logements comparables situés dans des bâtiments différents ou appartenant à des propriétaires différents. Il appartient au bailleur qui augmente le loyer d'apporter ces éléments de comparaison. Le juge doit effectuer des comparaisons concrètes et l'autorité cantonale de dernière instance doit indiquer exactement les critères sur lesquels elle s'est fondée. Sur cette base, le Tribunal fédéral contrôle librement si les loyers usuels sont établis conformément au droit fédéral (<ref-ruling> consid. 3.1; <ref-ruling> consid. 4a et 4c/aa); les exigences posées en la matière sont élevées (cf. PETER BURKHALTER/EMMANUELLE MARTINEZ-FAVRE, Le droit suisse du bail à loyer, Commentaire SVIT, 2011, n° 23 s. ad <ref-law>).
Les points de comparaison prévus à l'<ref-law> se rapportent à des logements ou locaux commerciaux, selon la lettre même de la loi. Lorsqu'il s'agit de comparer des places de stationnement pour voitures, il y a lieu, comme la recourante le relève à bon escient, de relativiser certains de ces critères. La situation géographique de la place de parc est certainement un élément déterminant, tout comme son emplacement intérieur ou extérieur, auquel cas il convient encore de distinguer selon que la place intérieure est accessible ou non par ascenseur, respectivement selon que la place extérieure est couverte ou non. Par contre, l'année de construction ou l'état de la surface de stationnement ne devrait en règle générale pas avoir de pertinence, notamment s'agissant d'une place de parc extérieure. Cette nécessaire relativisation ne dispense pas pour autant le bailleur de présenter des objets de comparaison concrets et définis.
Il ressort de l'arrêt attaqué, qui n'est pas remis en question sur ce point, que la recourante a présenté en tout et pour tout cinq exemples de comparaison; deux portent sur des places de parc situées sur le même immeuble et ne comptent dès lors que pour un. Il ne subsiste ainsi que quatre objets de comparaison, ce qui est d'emblée insuffisant pour procéder à une détermination du loyer usuel, motif pour lequel il n'y a pas lieu de les examiner plus avant. Au demeurant, l'autorité cantonale a considéré que la recourante avait uniquement fourni des informations très générales, disponibles sur internet; il ne saurait lui être fait reproche d'avoir considéré que celles-ci étaient en principe insuffisantes. La recourante n'en dit pas plus dans sa brève motivation; il ne suffit pas d'affirmer qu'il serait de notoriété publique à Genève qu'un parking à 180 fr. est une aubaine, fait qui ne ressort au demeurant pas de l'arrêt attaqué. Le grief est infondé.
3. La recourante se plaint d'une violation de l'<ref-law>. Elle reproche à l'autorité cantonale d'avoir réduit le loyer en fonction de la baisse du taux hypothécaire sans examiner si la place de parc louée lui procurait un rendement excessif et sans examiner s'il existait des motifs de hausse tels qu'une augmentation des charges. Elle estime en outre qu'il est abusif de la part des intimés d'invoquer le caractère abusif du loyer après vingt ans.
3.1 La cour cantonale a constaté que la recourante n'avait fourni aucun exemple de loyer comparatif conforme à la jurisprudence et que pour le surplus, il n'appartenait pas au juge de rechercher si d'autres facteurs non allégués de majoration, relatifs ou absolus, pourraient entrer en ligne de compte.
Dans son mémoire de recours, la recourante ne dit mot à ce sujet; ce n'est que dans ses observations, déposées après l'échéance du délai de recours, qu'elle indique avoir développé dans sa demande du 18 décembre 2009 les critères de calcul du loyer. Une telle motivation est insuffisante. Au demeurant, la recourante ne prétend pas que la cour cantonale aurait appliqué de façon arbitraire le droit de procédure cantonal ou fait preuve de formalisme excessif en lui reprochant un défaut d'allégations (cf. <ref-law> et <ref-ruling> consid. 3.2). Elle ne soutient pas non plus que les juges cantonaux auraient dû établir d'office l'existence de tels facteurs (cf. art. 274d al. 3 aCO; <ref-ruling> consid. 4a). Il n'y a pas à examiner la question plus avant.
3.2 Une demande de diminution de loyer s'apprécie en règle générale selon la méthode relative. Le locataire peut demander une diminution notamment à cause d'une baisse des charges du bailleur, en particulier d'une baisse du taux hypothécaire de référence intervenue depuis la dernière fixation du loyer (<ref-ruling> consid. 3.2.2.2). Par dernière fixation, il faut entendre, en dehors de la détermination du loyer en début de bail, la modification du loyer correspondant à une adaptation à de nouvelles bases de calcul; une modification du bail qui ne remet pas en cause le montant du loyer, en d'autres termes qui ne constitue pas une nouvelle fixation du loyer en fonction de bases de calcul modifiées, ne constitue pas un point de référence pour juger de l'admissibilité d'une adaptation ultérieure (<ref-ruling> consid. 2a p. 126).
Lors d'une modification de loyer faisant suite à une variation du taux hypothécaire, il y a lieu en outre de voir si et dans quelle mesure les variations antérieures ont entraîné une modification du loyer (<ref-law>). Il s'agit d'une brèche pratiquée dans la méthode relative. Le juge ne s'arrête pas à la dernière modification de loyer déclarée unilatéralement, mais poursuit son examen rétrospectif jusqu'à la dernière modification de loyer consécutive à une variation du taux hypothécaire (<ref-ruling> consid. 4b/dd). La portée de cette règle a toutefois été atténuée; le juge ne remonte pas au-delà d'une modification consensuelle du loyer, ou d'une transaction qui a pris en compte le taux hypothécaire, ou d'une précédente majoration de loyer fondée sur le taux hypothécaire que le locataire n'a pas contestée, ou enfin d'une fixation du loyer selon la méthode absolue (<ref-ruling> consid. 4b; cf. aussi <ref-ruling> consid. 3 p. 69).
Il découle de l'<ref-law> et de la jurisprudence y relative que le fait de renoncer même pendant une longue période à demander une baisse de loyer fondée sur l'évolution du taux hypothécaire ne prive pas en soi le locataire du droit de s'en prévaloir ultérieurement. Est seul déterminant le point de savoir si une fixation de loyer est intervenue dans l'intervalle et sur la base de quels critères elle a été établie. La recourante elle-même souligne qu'aucune fixation de loyer n'est intervenue entre 1991 et 2009, ce qui scelle le sort du grief d'abus de droit, formulé au demeurant après l'échéance du délai de recours.
En l'espèce, le loyer a été fixé à 816 fr. par an ou 68 fr. par mois à fin 1986; il n'a pas été constaté quel était le taux hypothécaire déterminant à cette époque. A fin 1991, à une époque où le taux hypothécaire déterminant était de 6,75%, le loyer a été augmenté à 996 fr. par an ou 83 fr. par mois, ce qui correspond à une augmentation de 22%; les intimés n'ont pas contesté cette augmentation, dont les motifs ne ressortent pas de l'arrêt attaqué. Au moment de l'augmentation litigieuse en juin 2009, le taux hypothécaire de référence était de 3,25%.
Il est notoire que les taux hypothécaires ont augmenté entre 1986 et 1991; celui pratiqué par la Banque cantonale genevoise a passé de 5,50% à 6,75% (cf. LACHAT, op. cit., p. 863), élément qui justifiait à lui seul une augmentation de loyer de 11% (<ref-law>; cf. LACHAT, op. cit., p. 867). Il peut dès lors être admis que cette variation du taux a motivé au moins partiellement l'augmentation du loyer à fin 1991. Aucune des parties à la présente procédure ne soutient le contraire et la recourante, en particulier, ne prétend pas que l'augmentation de 1991 serait exclusivement imputable à d'autres motifs et que le taux hypothécaire déterminant pour la réduction de loyer requise par les intimés serait en conséquence celui de 1986. La réduction se détermine donc bien en fonction de la baisse du taux entre 1991 et 2009, soit de 6,75% à 3,25%.
3.3 L'autorité cantonale, se référant au jugement de première instance, a retenu que cette baisse impliquait une diminution de loyer de 27,01% (chiffre repris de LACHAT, op. cit., p. 868). La recourante ne conteste pas le calcul; il est partant acquis. Une hausse des coûts de la recourante entre 1991 et 2009 n'est pas constatée. Le loyer annuel de 996 fr. fixé à fin 1991 pouvait ainsi être réduit de 25%, conformément aux conclusions des locataires. Le loyer de 797 fr. retenu dans l'arrêt attaqué n'excède pas la baisse admissible, de sorte qu'il doit être confirmé.
4. La recourante, qui succombe, supporte les frais et dépens de la procédure (art. 66 et 68 LTF).

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
2. Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge de la recourante.
3. La recourante versera aux intimés, créanciers solidaires, une indemnité de 2'500 fr. à titre de dépens.
4. Le présent arrêt est communiqué aux parties et à la Chambre des baux et loyers de la Cour de justice du canton de Genève.
Lausanne, le 9 février 2012
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: Klett
La Greffière: Monti