Regional Transportation Authority
Welcome to the
of Pima County
The Regional Transportation Authority oversees implementation of a 20-year regional transportation plan that voters approved on March 10, 2026. The $2.67 billion plan is funded by a half-cent excise (sales) tax. The RTA's mission is to deliver transportation improvements that ensure a safe, reliable, and efficient transportation network across the region.















Projects
Over $1 billion in RTA roadway project improvements will be completed across Pima County. Learn more.
Accountability
The RTA provides quarterly tracking reports on delivery of projects and services. Learn more.
Transit
The RTA continues to fund expanded evening, weekend and express transit and neighborhood shuttle services. Learn more.
Safety
The RTA is committed to making your trip safer no matter which transportation mode you use. Info coming soon!
Funding
The RTA's $2.67 billion regional transportation plan is funded by a voter-approved half-cent sales tax. Learn more.
Benefits
RTA investments will lead to economic benefits such as business development and job creation over the 20-year plan period. Info coming soon!
News
We are committed to sharing the latest information with you regarding RTA programs, services and project delivery efforts.
Meetings
Upcoming Meetings & Events

RTA Delivers Podcast
Stay Informed
To stay up to date on all RTA updates, please sign up for our newsletter below.
Webmaster Comment Section:
Below are page links for review until the menu is set.
:root {
--animation-duration: 5000ms;
}document.addEventListener("DOMContentLoaded", function() {
const buttons = document.querySelectorAll('.changing');
const slides = document.querySelectorAll('.changing-media');
const contents = document.querySelectorAll('.feature-card-milan__description');
let currentIndex = 0;
let intervalId;
// Initialize the first button, slide, and content
buttons[currentIndex].setAttribute('aria-selected', 'true');
contents[currentIndex].setAttribute('aria-hidden', 'false');
const animationDuration = getComputedStyle(document.documentElement)
.getPropertyValue('--animation-duration');
const durationInMs = parseInt(animationDuration);
function changeSelected() {
const shouldAnimate = Array.from(buttons).every(button => button.dataset.shouldAnimate === 'true');
if (!shouldAnimate) return;
updateVisibility(currentIndex, false);
currentIndex = (currentIndex + 1) % buttons.length;
updateVisibility(currentIndex, true);
slides.forEach((slide) => {
slide.style.transform = `translateX(${(-currentIndex) * 100}%)`;
});
}
function updateVisibility(index, isVisible) {
buttons[index].setAttribute('aria-selected', isVisible);
slides[index].setAttribute('tab-selected', isVisible);
contents[index].setAttribute('aria-hidden', !isVisible);
}
function startInterval() {
intervalId = setInterval(changeSelected, durationInMs);
}
function stopInterval() {
clearInterval(intervalId);
}
startInterval();
buttons.forEach((button, index) => {
button.addEventListener('click', () => {
buttons.forEach(btn => btn.dataset.shouldAnimate = 'false');
// Update visibility for the clicked button
updateVisibility(currentIndex, false);
currentIndex = index;
updateVisibility(currentIndex, true);
// Stop the animation
stopInterval();
// Move the corresponding slide into view
slides.forEach((slide) => {
slide.style.transform = `translateX(${(-currentIndex) * 100}%)`;
});
});
});
});



