Brighton’s Visitor-Funded Budget Is Strong Today but Vulnerable to a Bad Winter

Municipality Review | FY2027

Author

Bryce Nelson

Show R code
budget = read.csv("Dim_BudgetFY2027_1.csv")
property = read.csv("Dim_PropertyTaxBase_1.csv")
annual = read.csv("Fact_AnnualRevenues_1.csv")
monthly = read.csv("Fact_MonthlyRevenues_1.csv")
sales = read.csv("Fact_TaxableSales_1.csv")
snow = read.csv("Fact_SNOTEL_1.csv")

budget_total = sum(budget$Amount)
visitor_taxes = sum(budget$Amount[budget$Category == "Visitor Tax"])
visitor_share = visitor_taxes / budget_total
taxable_base = sum(property$TaxableAssessedValue)
cabins_share = property$TaxableAssessedValue[1] / taxable_base
levy = 250000
tax_rate = levy / taxable_base
annual_cost = levy * property$TaxableAssessedValue / taxable_base / property$UnitCount

annual_local = subset(annual, PeriodType == "Fiscal Year" & TaxType == "LS: Local Sales & Use Tax")
annual_resort = subset(annual, PeriodType == "Fiscal Year" & TaxType == "RR: Resort Community Tax")

Executive overview

Brighton enters FY2027 with a balanced $3.83 million General Fund budget, no budgeted operating debt-service expenditure, and an accumulated $5.02 million Capital Improvement Fund (CIP) balance entering the year. The budget also directs a $1.494 million General Fund transfer to CIP (Town of Brighton, 2026b). This position gives the Town Council meaningful short-term capacity to maintain services and fund capital work.

The town nevertheless relies on a narrow revenue base. Resort-community sales tax, local-option sales tax, and transient-room tax provide $2.41 million, or 62.9%, of General Fund revenue. This visitor-funded model applies the benefits principle because recreation consumers help fund the public services and amenities they use (Mikesell, 2018). It also makes the town sensitive to weak snow conditions, canyon-access disruptions, and tourism downturns. Brighton Loop snow-water-equivalent data show why the town should treat winter conditions as a fiscal risk rather than routine variation (USDA Natural Resources Conservation Service, 2026).

Town of Brighton at a Glance

  • Strong position today: Brighton balances the FY2027 General Fund, has no budgeted operating debt service, and enters the year with a reported $5.02 million CIP balance (Town of Brighton, 2026b).
  • Clear exposure: Visitor-sensitive taxes supply 62.9% of General Fund revenue. CY2025 gross taxable sales equal about $695,394 per permanent resident, or about 19 times the Salt Lake County benchmark. The comparison signals both strong visitor spending and dependence on visitor activity (Utah State Tax Commission, 2026c; Town of Brighton, 2022).
  • Practical next step: The Town Council should publish a short annual Budget in Brief and evaluate a modest property-tax floor after obtaining a complete local-versus-central property assessment split. Utah’s Truth in Taxation process provides the public framework for considering that decision (Kem C. Gardner Policy Institute, 2026).

Figure 3. Brighton’s municipal boundary within Utah and Salt Lake County. Brighton sits in eastern Salt Lake County, in Big Cottonwood Canyon. Its altitude and terrain make it a popular destination for winter recreation. Source: Utah Geospatial Resource Center county and municipal boundary services.

Entity profile and service model

Incorporated in 2019, Brighton operates in Big Cottonwood Canyon with a small permanent resident population of about 180 to 200 people and a much larger seasonal visitor population (Town of Brighton, 2022). The town sets policy and contracts for several core services through interlocal and service-provider arrangements, including public safety, planning, engineering, and building inspection. This structure lets a small municipality access specialized capacity without maintaining every function in-house, but it also makes dependable revenue and partner costs central to fiscal planning (Mikesell, 2018; Town of Brighton, 2022).

Policy direction

Brighton should retain its visitor-supported revenue model while considering a modest, Truth in Taxation-compliant property-tax levy as a revenue floor. Under the report’s illustrative residential base, a $250,000 levy would place about 87.1% of the modeled levy on secondary or seasonal cabins. The town must obtain a certified assessment roll and complete the required public process before setting any rate. A short Budget in Brief should explain the purpose, expected household impacts, and relationship to the annual CIP transfer before any hearing (Kem C. Gardner Policy Institute, 2026; Town of Brighton, 2026b).

Fiscal setting and current budget

The Town of Brighton uses a July 1 through June 30 fiscal year. Its FY2027 adopted General Fund totals $3,831,800. The town’s operating presentation shows no debt-service expenditure, and the FY2027 budget directs a $1,494,000 General Fund transfer to the Capital Improvement Fund (CIP). Brighton reported a $5.02 million accumulated CIP balance entering FY2027, plus $253,649 in interest earnings. This capital position is important because the town programs the carryforward balance and annual transfer toward planned capital work rather than treating it as an unallocated reserve.

The revenue mix efficiently charges visitors for a share of the services they use, but it gives Brighton less stability. The $1.51 million resort-community sales tax, $740,000 local-option sales tax, and $160,000 municipal transient-room tax together supply $2.41 million. This approach follows the benefits principle: visitors who create congestion, require public safety, and use local amenities help pay for services. Tourism spending, however, falls when weather, road access, or household budgets worsen.

Show R code
budget_colors = c("#2F6690", "#2F6690", "#2F6690", "#8C8C8C", "#8C8C8C")
barplot(budget$Amount / 1000000,
        names.arg = c("Resort\ncommunities", "Local\noption", "Transient\nroom", "MSD\ninterlocal", "Other\nrevenue"),
        col = budget_colors, border = NA,
        ylab = "Millions of dollars", main = "Nearly two-thirds of General Fund revenue is visitor-sensitive")
abline(h = visitor_taxes / 1000000, lty = 2, col = "#C0392B")
text(4.6, visitor_taxes / 1000000 + .12, labels = "Visitor taxes: $2.41M (62.9%)", col = "#C0392B", cex = .85)

Figure 1. FY2027 General Fund revenue portfolio. Blue bars show visitor-tax categories; gray bars show non-visitor revenue.

Revenue trend and fiscal condition

Brighton’s principal visitor-tax streams grew rapidly as the new municipality’s tax base developed, then began to level off. Local-option sales-tax distributions rose from $220,000 in FY2020 to $725,000 in FY2026, while resort-community tax distributions rose from $11,000 to $1.45 million. FY2024 through FY2026 show a steadier pattern than the early ramp-up, but town leaders should not treat that pattern as guaranteed growth. Tourism demand can decline abruptly when winter access, snow conditions, or household spending change.

Brighton starts FY2027 with strong capital capacity: no debt service appears in the operating budget, and the town reports a $5.02 million CIP balance. Its capital plan programs approximately $7.65 million for utility improvements, property acquisition and land preservation, infrastructure, facility improvements, trails, and wayfinding. Brighton can meet current commitments, but a repeated visitor-tax shortfall would first reduce the $1.49 million annual CIP transfer. That change could delay maintenance or future projects before it affects core operating services. The town also relies on interlocal partners, so future service costs and service availability will affect its fiscal position.

Show R code
plot(1:length(annual_local$Distribution), annual_local$Distribution / 1000000,
     type = "o", pch = 16, col = "#2F6690", ylim = c(0, 1.6),
     xaxt = "n", xlab = "Fiscal year", ylab = "Distributions (millions of dollars)",
     main = "Visitor-tax growth is slowing")
axis(1, at = 1:length(annual_local$Period), labels = annual_local$Period)
lines(1:length(annual_resort$Distribution), annual_resort$Distribution / 1000000,
      type = "o", pch = 16, col = "#E59F23")
legend("topleft", legend = c("Local-option sales tax", "Resort-community tax"),
       col = c("#2F6690", "#E59F23"), lty = 1, pch = 16, bty = "n")

Figure 2. Fiscal-year distributions for Brighton’s two principal visitor-tax streams. FY2020 resort-tax collections reflect the limited initial period in the source data.

Climate exposure and fiscal resilience

Taxable sales follow a sharply seasonal pattern. The source data show a $27.6 million peak in March 2026 and $26.4 million in February, compared with $1.3 million in May. Visitor-tax distributions arrive about two months after the underlying sales; the figure aligns them to the month in which sales occurred. The same period also illustrates the climate connection: April 2026 snow-water equivalent measured 3.0 inches, compared with a 20.9-inch historical median.

These data do not prove that snowpack alone determines revenue. They do show why Brighton should treat winter conditions, avalanche closures on SR-190, and economic downturns as budget risks rather than routine variation. FY2026 visitor-tax collections totaled $2.31 million, 4.3% below the FY2027 visitor-tax budget. The accumulated CIP balance provides capacity, but repeating a shortfall during a major winter disruption would reduce the town’s flexibility to execute programmed capital work.

Show R code
local = subset(monthly, TaxType == "Local Option 1% Sales Tax")
resort = subset(monthly, TaxType == "Resort Communities Sales Tax")
room = subset(monthly, TaxType == "Transient Room Tax")
snow_2026 = subset(snow, Date >= "2025-10-01" & Date <= "2026-08-01")

par(mar = c(7, 4, 3, 4))
bars = rbind(local$MonthlyRevenue, resort$MonthlyRevenue, room$MonthlyRevenue)
barplot(bars / 1000000, beside = FALSE,
        names.arg = format(as.Date(local$SalesMonthDate), "%b\n%Y"),
        col = c("#81C3D7", "#2F6690", "#3A7CA5"), border = NA,
        ylim = c(0, 0.55),
        ylab = "Visitor-tax distributions (millions)",
        main = "Winter sales fund most visitor-tax distributions")
legend("topleft", legend = c("Local option", "Resort communities", "Transient room"),
       fill = c("#81C3D7", "#2F6690", "#3A7CA5"), bty = "n", cex = .75)

par(new = TRUE)
plot(1:length(snow_2026$AvgSWE_in), snow_2026$AvgSWE_in,
     type = "l", lwd = 2, col = "#E59F23", axes = FALSE, xlab = "", ylab = "",
     ylim = c(0, 25))
lines(1:length(snow_2026$MedianSWE_1991_2020_in), snow_2026$MedianSWE_1991_2020_in,
      lwd = 2, lty = 2, col = "#8C8C8C")
axis(4, col.axis = "#555555")
mtext("Snow-water equivalent (inches)", side = 4, line = 2.5)
legend("topright", legend = c("WY2026 SWE", "Historical median"),
       col = c("#E59F23", "#8C8C8C"), lty = c(1, 2), lwd = 2, bty = "n", cex = .75)

Figure 4. Visitor-tax distributions by underlying sales month, aligned with snow-water equivalent (SWE).
Show R code
par(mar = c(5, 4, 4, 2))

Property tax as a revenue floor, not a replacement

Brighton currently sets a 0.00% town property tax rate. The supplied property-base file is an illustrative aggregate, not county-assessor data. It still shows how a small levy would affect two major residential groups. Secondary residential or seasonal cabins represent 690 of 875 units and 87.1% of taxable assessed value. Primary residences receive Utah’s 45% residential exemption, so they account for 12.9% of the taxable base.

A $250,000 levy would require an estimated 0.0287% rate under this illustrative base. It would raise about $217,872 from secondary cabins and $32,128 from primary residences, or approximately $316 and $174 per unit annually. This option better follows the ability-to-pay principle than a uniform charge because higher taxable value carries a larger share. It also gives the town a less volatile revenue source without abandoning the visitor taxes that fit a resort community.

ImportantWhy a $250,000 property-tax buffer helps

Brighton relies on visitor-sensitive taxes for 62.9% of General Fund revenue. A $250,000 baseline property-tax levy would create a smaller, more predictable revenue source when poor snow, canyon closures, or a recession reduce visitor spending. The proposal would not replace visitor taxes. It would give the Town Council another tool to maintain services and reduce pressure on the annual $1.494 million CIP transfer during a downturn.

Under the report’s illustrative residential base, secondary or seasonal cabins account for 87.1% of taxable assessed value and would generate about $217,872 of the levy, or roughly $316 per unit each year. Primary residences account for 12.9% and would generate about $32,128, or roughly $174 per unit. This distribution reflects Utah’s primary-residence exemption and places more of the levy on higher taxable value.

The Town Council would need to use Utah’s Truth in Taxation process before adopting any levy. The amounts shown here illustrate the tradeoff; they do not replace a certified assessment roll, a required public process, or the Council’s final rate-setting decision.

Show R code
par(mfrow = c(1, 2))
barplot(property$TaxableAssessedValue / 1000000,
        names.arg = c("Secondary\ncabins", "Primary\nresidences"),
        col = c("#2E7D32", "#81C3D7"), border = NA,
        ylab = "Taxable assessed value (millions)",
        main = "87.1% of taxable value is in cabins")
barplot(annual_cost,
        names.arg = c("Secondary\ncabins", "Primary\nhouseholds"),
        col = c("#2E7D32", "#81C3D7"), border = NA,
        ylab = "Estimated annual tax per unit ($)",
        main = "A $250,000 illustrative levy")
text(c(1, 2), annual_cost + 18, labels = paste0("$", round(annual_cost)), cex = .9)

Figure 5. Illustrative property-tax base and estimated annual cost of a $250,000 levy.
Show R code
par(mfrow = c(1, 1))

Communication assessment and recommendation

Brighton meets the basic transparency requirement by publishing adopted budgets and related records. To understand the fiscal story, residents can turn to the local newsletter, which has helpful information about tax rates and who can help residents with their governance questions.

Point-of-sale taxable sales per capita

The Utah State Tax Commission’s 2025 annual-sales workbook provides a same-year comparison of gross taxable sales. Brighton reported $132.1 million, compared with $44.0 billion countywide and $108.8 billion statewide. Brighton’s General Plan estimates a permanent population of approximately 180 to 200 residents. The 190-resident midpoint produces an estimated $695,394 in taxable sales per resident. The 180-to-200 resident range produces $660,624 to $734,027. This comparison does not measure the exact share paid by visitors, but it does document an exceptionally visitor-intensive taxable-sales base.

Jurisdiction CY2025 gross taxable sales Population basis Taxable sales per resident
Brighton $132.1 million 190 midpoint estimate $695,394
Salt Lake County $44.0 billion 1,220,916 $36,011
Utah $108.8 billion 3,538,904 $30,750

Brighton’s estimated taxable sales per resident are about 19 times the county benchmark and 23 times the statewide benchmark. This supports the benefits-principle rationale for visitor-sensitive revenues, but it also reinforces the resilience concern: the town’s unusually concentrated retail base depends on recreation and visitor activity rather than the spending of its small permanent population.

Data limitation: property assessment classification

The supplied property table remains an illustrative two-category residential aggregate. It identifies neither the required split among all locally assessed property classes nor Brighton’s centrally assessed value. Utah centrally assesses mining, oil and gas, utility, and transportation property based on where the property sits. The absence of a large industrial facility cannot establish a zero centrally assessed value. The town must obtain County Assessor and Tax Commission assessment data before this report can quantify the local-versus-central split.

Sources

AirROI Market Analytics, & Town of Brighton. (2026). Brighton short-term rental occupancy and active licensing database. Town of Brighton, Utah.

Bardach, E., & Patashnik, E. M. (2020). A practical guide for policy analysis: The eightfold path to more effective problem solving (6th ed.). CQ Press.

Kem C. Gardner Policy Institute. (2018). A visual guide to sales tax modernization in Utah. David Eccles School of Business, University of Utah. https://d36oiwf74r1rap.cloudfront.net/wp-content/uploads/Nov2018-TaxBook-Final.pdf

Kem C. Gardner Policy Institute. (2022). A visual guide to tax modernization in Utah: Understanding property taxes. David Eccles School of Business, University of Utah. https://le.utah.gov/interim/2022/pdf/00002830.pdf

Kem C. Gardner Policy Institute. (2024). Utah property tax myth busters: Trends and choices. David Eccles School of Business, University of Utah. https://d36oiwf74r1rap.cloudfront.net/wp-content/uploads/2024/01/Utah-Property-Tax-Myth-Busters-Presentation-Jan2024.pdf

Kem C. Gardner Policy Institute. (2025a). Goal of the tax system brief: Tradeoffs in tax policy. David Eccles School of Business, University of Utah.

Kem C. Gardner Policy Institute. (2025b). Tax system reliability brief: Revenue volatility and earmarks. David Eccles School of Business, University of Utah.

Kem C. Gardner Policy Institute. (2026). Truth in Taxation fact sheet (U.C.A. § 59-2-919). David Eccles School of Business, University of Utah. https://d36oiwf74r1rap.cloudfront.net/wp-content/uploads/2026/08/TruthInTaxation-FS-Aug2026.pdf

Mikesell, J. L. (2018). Fiscal administration: Analysis and applications for the public sector (10th ed.). Cengage Learning.

Salt Lake County Assessor. (2026). Computer-Assisted Mass Appraisal (CAMA) parcel records and residential property classifications. Salt Lake County, Utah. https://www.saltlakecounty.gov/assessor/parcel-data/

Schwabish, J. A. (2014). An economist’s guide to visualizing data. Journal of Economic Perspectives, 28(1), 209–234. https://doi.org/10.1257/jep.28.1.209

Tax Foundation. (2019). Modernizing Utah’s sales tax: A guide for policymakers (J. Walczak, Ed.). Tax Foundation. https://files.taxfoundation.org/20190611134106/Modernizing-Utahs-Sales-Tax-A-Guide-for-Policymakers-PDF.pdf

Town of Brighton. (2020). Town of Brighton Code: Title 3—Revenue and finance (Ordinance No. 3.04). Town of Brighton, Utah.

Town of Brighton. (2022). Town of Brighton General Plan. Adopted November 2022.

Town of Brighton. (2025a). Resolution No. 2025-R-6-1: Adopting final property tax rates (.000000) and FY 2026 final budget. Town of Brighton, Utah.

Town of Brighton. (2025b). Resolution No. 2025-R-12-1: Adopting the amended budget for FY 2026. Town of Brighton, Utah.

Town of Brighton. (2025c). Statutory study and economic analysis for appropriation to Silverfork Skimo (U.C.A. § 10-8-2). Town of Brighton, Utah.

Town of Brighton. (2025d). Utah State Auditor Fraud Risk Assessment questionnaire. Office of the State Auditor.

Town of Brighton. (2026a). Ordinance No. 2026-O-3-1: Procurement and purchasing regulations (Chapter 3.75). Town of Brighton, Utah.

Town of Brighton. (2026b). Resolution adopting the FY 2027 final budget and setting the property tax rate at 0.00%. Adopted June 9, 2026. Town of Brighton, Utah.

USDA Natural Resources Conservation Service. (2026). SNOTEL Site 366: Brighton Loop daily snow water equivalent (SWE) and snowpack report. Water and Climate Center. https://wcc.sc.egov.usda.gov/nwcc/site?sitenum=366

Utah Department of Transportation. (2026). Cottonwood Canyons SR-190 traffic volume counters and avalanche road closure logs. UDOT Operations. https://cottonwoodcanyons.udot.utah.gov/road-information/

Utah State Tax Commission. (2026a). Local option and resort communities sales tax monthly distribution spreadsheets. State of Utah. https://tax.utah.gov/business/sales-tax/other-sales-tax/distribution/

Utah State Tax Commission. (2026b). Quarterly and annual taxable sales reports by locality and industry. State of Utah. https://tax.utah.gov/commission/econstats/sales/

Utah State Tax Commission. (2026c). Utah calendar year gross taxable sales and purchases—2025 [Data workbook].

U.S. Census Bureau. (2026a). QuickFacts: Salt Lake County, Utah. https://www.census.gov/quickfacts/fact/table/saltlakecountyutah/PST045217

U.S. Census Bureau. (2026b). QuickFacts: Utah. https://www.census.gov/quickfacts/ut

Utah Geospatial Resource Center. (2026a). Utah municipal boundaries [GIS data]. https://gis.utah.gov/products/sgid/boundaries/municipal/

Utah Geospatial Resource Center. (2026b). Utah county boundaries [GIS data]. https://gis.utah.gov/products/sgid/boundaries/county/

Volcker Alliance. (2022). A cloudy crystal ball: Revenue forecasting in uncertain times (Issue Paper Series). The Volcker Alliance.

Wang, X., Dennis, L., & Tu, X. S. (2007). Measuring financial condition: A study of U.S. states. Public Budgeting & Finance, 27(2), 1–21. https://doi.org/10.1111/j.1540-5850.2007.00872.x

Data note: The property-tax base is explicitly illustrative and not derived from the assessor rolls.