Madrid liegt im westlichen Zentrum Iowas unweit des östlichen Ufers des Des Moines River, einem rechten Nebenfluss des Mississippi.
Die geografischen Koordinaten von Madrid sind 41°52′36″ nördlicher Breite und 93°49′24″ westlicher Länge. Die Stadt erstreckt sich über eine Fläche von 3,08 km² und verteilt sich über die Douglas Township und zum kleineren Teil die Garden Township.
Nachbarorte von Madrid sind Luther (10,3 km nördlich), Kelley (20,5 km nordöstlich), Slater (11,1 km östlich), Huxley (19,8 km in der gleichen Richtung), Polk City (16,5 km südöstlich), Granger (13,9 km südlich), Woodward (10,1 km westsüdwestlich) und Boone (24,8 km nordnordwestlich).
Im Zentrum von Madrid kreuzen die Iowa State Highways17 und 210. Alle weiteren Straßen sind untergeordnete Landstraßen, teils unbefestigte Fahrwege sowie innerörtliche Verbindungsstraßen.
Durch Madrid verläuft in West-Ost-Richtung auf der Trasse einer ehemaligen Eisenbahnstrecke der Union Pacific Railroad mit dem High Trestle Trail ein Rail Trail für Wanderer, Radfahrer und Reiter.[4] Etwa 3 km westlich von Madrid überquert der High Trestle Trail über eine 1973 errichtete Brücke den Des Moines River.[5]
Mit dem Iowa Arboretum befindet sich seit 1966 in Madrid ein botanischer Garten.[6]
Nach der Volkszählung im Jahr 2010 lebten in Madrid 2543 Menschen in 1045 Haushalten. Die Bevölkerungsdichte betrug 825,6 Einwohner pro Quadratkilometer. In den 1045 Haushalten lebten statistisch je 2,33 Personen.
Ethnisch betrachtet setzte sich die Bevölkerung zusammen aus 98,6 Prozent Weißen, 0,2 Prozent Afroamerikanern, 0,1 Prozent amerikanischen Ureinwohnern, 0,1 Prozent Asiaten sowie 0,2 Prozent aus anderen ethnischen Gruppen; 0,8 Prozent stammten von zwei oder mehr Ethnien ab. Unabhängig von der ethnischen Zugehörigkeit waren 0,8 Prozent der Bevölkerung spanischer oder lateinamerikanischer Abstammung.
24,7 Prozent der Bevölkerung waren unter 18 Jahre alt, 55,5 Prozent waren zwischen 18 und 64 und 19,8 Prozent waren 65 Jahre oder älter. 52,9 Prozent der Bevölkerung waren weiblich.
Das mittlere jährliche Einkommen eines Haushalts lag bei 49.500 USD. Das Pro-Kopf-Einkommen betrug 23.142 USD. 6,8 Prozent der Einwohner lebten unterhalb der Armutsgrenze.[8]