Last Updated September 29, 2026
What You’re Not Being Told About Apex’s Trees
He promised to save Apex’s trees. Then he told you the rules were the state’s best and growth had stopped. None of it was true.

Last Updated September 29, 2026
What You’re Not Being Told About Apex’s Trees
He promised to save Apex’s trees. Then he told you the rules were the state’s best and growth had stopped. None of it was true.

This Is A Story About Trust, Transparency, and Trees.
While that might not sound too exciting, this may be the most important topic we have covered to date.
The Peak Weekly is a proud sponsor of the Triangle Environmental Symposium, big fan of trees, lover of wildlife and rejects dishonesty from elected officials.
This is a story about the trees in Apex. It is fact-driven and cites all of its sources. You can independently verify all of this – not by asking a councilmember – but by looking at the actual data and documents which I will link below.
Here is some of what we’ll cover in this article:
- Apex lost more than an acre of trees a day between 2016 and 2020, about 1,766 acres, and the county’s own study puts the loss at 2,180 acres over the decade, the largest of any town in Wake County. The land Apex will annex next is 69 percent forest – for now.
- Mayor Pro Tem Terry Mahaffey, who sits on the committee that writes development rules, has told residents since 2019 that Apex’s tree protections are among the strongest in the state and that growth has slowed. The Town’s own records say neither is true.
- Mahaffey claims we have the best resource conservation in the state. But, in fact, Apex’s “conservation area” rule does not require a single tree to be saved. It counts creek buffers the state already protects, landscape strips the ordinance already requires, sewer easements, playgrounds at half credit, and stormwater ponds at full credit. Apex is the only town of ten we compared that counts a pond as conservation.
- On four recent approvals, including one Mahaffey seconded this April, the rule preserved no forest that state law and the landscaping code did not already require. The “massive disaster” he cited from the old council set aside more real buffer than the project he voted for.
- Growth is not down 75 percent. Last year Apex added more residents than in any year since 2021 and finished the most homes in five. The chart Mahaffey shared showing a 75 percent drop used a half-year number; he had posted the correct figure himself five months earlier.
- He took $5,000 from the NC REALTORS PAC, whose agenda he himself says has bought the legislature, then wrote that no council candidate should take developer money.
- Town staff told council in April that the rule “directly undermines” its own purpose and that nobody at the Town reviews tree preservation. Five months later, no fix is on any agenda and no forester is in the budget.
Part one
The problem
Between July 2016 and July 2020, about 1,766 acres of green space disappeared inside Apex and the land it controls just outside town.
That is 2.8 square miles. It works out to more than an acre a day, every day, for four years. Apex Community Park is 162 acres. Picture eleven of them, gone.

The county has measured it too. Wake County's 2020 tree study found that Apex lost 15 percent of its tree cover between 2010 and 2020, about 2,180 acres. That was the largest loss of any town in the county. Cary lost 7 percent. Holly Springs lost 10. The county as a whole lost 3.
Here is why that matters to you.
Trees are the cheapest stormwater system Apex has. A wooded acre soaks up rain that a cleared, graded acre sends into a pipe, a pond, or your yard. Apex sits in the Jordan Lake watershed, where the region's drinking water comes from, and trees along the creeks are what keep the silt out of it. A shaded street is cooler in July than a bare one, and a shaded house costs less to cool.
The county puts a number on all of it: Wake County's trees pull 11,000 tons of pollution out of the air each year and catch 8.1 billion gallons of stormwater, worth about $1,290 a year to every resident. When an acre of trees comes down, that work stops, and the replacement saplings will not do it for decades.
And the worst is ahead. Inside the Apex town limits, the county counted 45 percent tree cover. On the land just outside them, the land the Town will annex next, it counted 69 percent, the most wooded growth area of any town in Wake County. That is where nearly all of Apex's remaining building will happen. Every acre approved out there is more likely to be forest than the last one.
How we counted the 1,766 acres: we compared federal aerial photos from July 2016 and July 2020 across the whole town, pixel by pixel, and kept every patch of an acre or more that was green before and not after. The method sees plants, not just trees, and clearing inside an approved project is not proof anyone broke a rule. Example flyover comparison shown below. If we got an area wrong, tell us and we will fix it.

Part two
What you've been told
In July 2019, three months before he was first elected, Terry Mahaffey posted a heat map of development in Wake County. Apex was the biggest red spot on it. "We need to protect our beautiful tree canopy cover before it is gone forever," he wrote.

"And we're allowed to say no to a bad project, or even say no to an 'ok' project if we just want to wait for something different to come along. If I'm elected to the Apex Town Council this November, I Will Do Better."
He was elected that November. He is now Mayor Pro Tem. He sits on the Responsible Development Committee, which writes the rules developers follow, and he is the council's link to the Environmental Advisory Board, the citizen group that has spent a year asking for stronger ones. Here is what he has told you since, next to the record.
"Full tree canopy replacements"
In October 2021, Mahaffey wrote that the new council was "requiring much more from developers," including "full tree canopy replacements and other environmental concessions," and that the old approvals were a "massive disaster."

There is no such requirement. Apex's ordinance - still to this day - does not require a developer to replace canopy, preserve any share of existing trees, or count the trees on a site before clearing it. The only replacement rule covers trees cut illegally inside a protected area. None of the projects approved since then carries a canopy-replacement condition.
Here is what the rule actually produced. Horton Park, a Planned Unit Development off Smith Road, was solid forest. The approved plan met its conservation requirement on a floodplain a quarter mile away, and the phases along Percussion Drive were cleared to the property lines.

"Some of the most robust environmental controls in North Carolina"
Running for re-election in October 2023, Mahaffey told News & Observer that "Apex has recently implemented some of the most robust environmental controls in North Carolina, preserving our tree canopy and watershed."
Four weeks earlier, on September 26, council had been presented with the county's tree study. Council Member Arno Zegerman summarized it the next morning: "Apex has lost a shocking amount of tree coverage."
We read the tree rules of nine other North Carolina towns. Apex's headline percentage is near the top. What the percentage measures is at the bottom. Apex is the only one of the ten that lets a developer count a stormwater pond, water and all, as conservation. It is one of two in Wake County with no rule protecting large trees. It is one of three with no urban forester on staff. Chapel Hill, Durham and Holly Springs require that the set-aside actually contain trees. Apex does not.

Show as a table
| Minimum set-aside | What it measures | Ponds and lawns count? | Big-tree rule | Urban forester | |
|---|---|---|---|---|---|
| Apex | 10–30% | "Resources": floodplain, buffers, slopes, ponds, amenities | Yes, ponds at 100%, lawns at 50% | Survey only | No |
| Chapel Hill | 30–40% | Tree canopy after construction | No | Trees over 24" must be preserved | Yes |
| Durham | 20–30% suburban | Preserved tree zones plus replanting credit | Pond water excluded | Survey, credit for saving | Yes, 9 staff |
| Holly Springs | 30% open space, 20–25% must be tree preservation area | Designated tree preservation area | SCMs only half, only if amenitized | 24"+ protected, $2,000 fine plus $100/inch | Program |
| Morrisville | 15–20% | Existing tree canopy, net of easements and water | Easements excluded | 24"+ replaced at 2x | No |
| Charlotte | 15% | Tree save with credit multipliers | Ponds and easements subtracted first | 30"+ native must be preserved or paid for | Yes |
| Raleigh | 10–15% | Undisturbed tree conservation area | Storm drainage excluded | Champion trees can't be removed | Yes |
| Cary | None | Individual champion trees | n/a | 32"+ can't be removed | Yes |
| Wake Forest | No percentage; tree count | Trees per square foot, new or existing | Buffers and easements count toward open space | 20"+ replace or pay value | Yes |
| Fuquay-Varina | None; 30–40 ft perimeter strip | Perimeter buffer plus heritage trees | n/a | 24"+ replaced 1 per 10" | No |

Apex is the only town of the ten that counts a stormwater pond at full value toward conservation, one of two in Wake County with no rule protecting large individual trees, and one of three with no urban forester on staff.
He was still saying it this morning. Replying to a resident on Reddit who wrote that state-mandated stream buffers "have been the reason for any trees left on site," Mahaffey answered: "trees are left on site because we have the largest RCA program in the state. Yes riparian buffers count but rarely are enough."

One thing in his reply is right, and it deserves credit: Apex requires 100-foot buffers on perennial streams, double the state's 50. That is the one place the Town's own rule adds trees. It is a stream rule, not a tree rule, and on the plans in this article it is a strip along a creek.
Everything else on those plans that has trees in it was required by the state or by the landscaping code. What the set-aside rule added on top was a pond and a lawn.
"Growth is slowing"
Yeah, I guess if you publish inaccurate figures."
Here's how you can see those numbers without just relying on a chart that Terry made. Click on this link. That will open up the Town of Apex's Certificate of Occupancy FeatureServer. Scroll down to see the results.
That 708 number he's showing you to argue that "growth is slowing in Apex" - see how the Town's truthful data shows 1,245? And then how it grows to 1,617 the next year because... growth is not slowing?
In April 2025 he posted a chart of certificates of occupancy, the paper a building gets when it is finished, falling from a 2020 peak. "A good proxy for home building," he called it. "If you measure growth as a percentage, the drop is even more precipitous."
Readers asked the right questions in the comments. "Is there lag time after the CO before the buildings are fully built and occupied?" one wrote. "Not really," he replied. Another asked whether the large apartment and townhome projects under construction were missing from his numbers. "Every single metric shows plummeting growth, down by over half, since the peak in 2020," he answered. "It's undeniable." He predicted growth would "level off around 3-4% year over year."
A house gets one certificate. An apartment building gets one certificate too, for the whole building. Last year Apex issued the fewest certificates in five years and finished the most homes: 1,618. More than half of them were apartments, up from 3 percent four years earlier.
Between October 27 and November 21, 2025, four certificates covered 592 apartments. His chart counted them as four. The Town's growth rate for the year he was predicting came in at 4.7 percent, the highest in four years. By the Town's own population count, the drop from the 2020 peak was 39 percent, not "over half." The readers were right.

Show as a table
| Fiscal year | Certificates issued | Homes those certificates covered | Homes per certificate | Residents added |
|---|---|---|---|---|
| 2021–22 | 1,062 | 1,089 | 1.0 | 3,148 |
| 2022–23 | 1,040 | 1,040 | 1.0 | 3,150 |
| 2023–24 | 1,156 | 1,306 | 1.1 | 3,714 |
| 2024–25 | 995 | 1,244 | 1.3 | 3,365 |
| 2025–26 | 769 | 1,618 | 2.1 | 4,003 |
The Town's August report shows 5,300 homes under construction right now, and 1.8 million square feet of commercial. Town limits have grown from 23.9 to 28.2 square miles since 2020. Growth as a percentage falls on its own as a town gets bigger; the 4,003 people Apex added last year would have been a 6.9 percent jump in 2019 and were 4.9 percent today. That is arithmetic, not a slowdown.
The Town's own planners disagreed with him at the time. Apex's Housing Plan Update, published in June 2025, four weeks after his second chart, opens its growth section with one sentence: "Apex is projected to continue its rapid growth through the next decade." Its projection, built on figures from the Town's Planning Department, shows household growth of about 40 percent by 2035.

"As the Evidence Shows"

Just days before the last election, Ed Gray took a shot at two other candidates for getting the HBA endorsement and then made the claim, "as the evidence shows, development has slowed down during my time on Council..."
Let's think about this for a moment. Ed poasted this on October 27, 2025 (which is FY 25/26). Why isn't the completed FY 24/25 on this graph?
Also, those numbers are not the real numbers. Here's the actual numbers:

The real read is that during Ed's last four year's on Council (using FY25 compared to FY21), Apex's population grew by 13,377 people which is a 19.5% increase.
The best part of all, you don't have to take my word for it. You can see it for yourself here.
"Growth is down 75 percent"
Oh look, Mahaffey shared the inaccurate chart and doubled-down on the inaccurate claim.

A week before last November's election, Mahaffey shared a chart from Council Member Ed Gray showing new residents falling from 7,174 a year to 1,834. Gray wrote that growth had slowed "because of 1) good policies and 2) I haven't taken HBA money," meaning the Home Builders Association.
Two residents pointed this out in the comments, with a link to the current report - one to Ed and one to Terry.
Neither council member replied. The post stayed up through the election and Mahaffey is referencing the false 75% claim still to this day.

He had the right number a few months prior. On May 3, Mahaffey had posted his own growth-rate chart with the actual numbers. It showed FY 2023–24 at 4.9 percent, which matches the Town's full-year count. But a week before election day, that number from the previous year somehow got much smaller.

Show as a table
| Fiscal year | Change in Town population estimate | Town's Aug. 2025 report | Gray chart |
|---|---|---|---|
| 2018–19 | 4,273 | ||
| 2019–20 | 6,045 | 7,174 | |
| 2020–21 | 4,284 | 4,590 | |
| 2021–22 | 3,148 | 3,045 | 3,045 |
| 2022–23 | 3,150 | 2,815 | 2,815 |
| 2023–24 | 3,714 | 3,893 | 1,834 |
| 2024–25 | 3,365 | 3,306 | |
| 2025–26 | 4,003 | 453 (partial year) |
Using the Town's full-year numbers, the drop from the 2020 peak to 2023–24 was about 39 percent, not 75. The two years since came in at 3,365 and 4,003. Last year Apex added more people than in any year since 2021.
"This should be required for all candidates"

Let's go back to that October post - Mahaffey praised Gray and two other candidates for pledging not to take money from developers or developer PACs. "This should be required for all candidates in all Town Council races," he wrote, "as most of the decisions we make directly impact developers."

Two years earlier, running for his own seat, Mahaffey took $5,000 from the political action committee of NC REALTORS, the state's real estate trade group. He is not the only one; Council Member Zegerman took money from the same PAC.
Realtors are not home builders. But their PAC and the builders' lobby want the same thing from town hall. NC REALTORS PAC says it gives to local candidates because local government "has the most direct impact on zoning, development and resource allocation."
When argued that the Realtor PAC isn't basically the same thing as the NC Builders Association PAC, you might be interested to know that NC Realtor PAC's inditiative is literally called More Homes NC.
Its statewide campaign says the housing problem is a shortage of supply and local rules are in the way. The 760,000-home shortage figure behind this year's state legislation came from a study NC REALTORS paid for together with the NC Home Builders Association and the NC Chamber.
NC REALTORS celebrated House Bill 162, which took away towns' power over parking, and Senate Bill 445, which lets apartments go up by right in larger cities. Mahaffey wrote on his blog that "the Home Builder lobby has bought and paid for the Republican caucus," and that SB 445 means "no tree protection standards or buffering." The lobby he says bought the legislature and the PAC that gave him $5,000 lobbied for the same bills.
Part three
How the trick works
Apex does not have a tree protection ordinance the way Chapel Hill or Durham does. It has a set-aside rule. Every new development draws a line around part of its land and leaves what is inside alone: 10 percent inside the Peakway, 20 percent north and east of 540, 30 percent south and west of it, where the woods are.

Show as a table
| Where | Required set-aside |
|---|---|
| Inside the Apex Peakway loop | 10% of the site |
| North and east of NC 540 | 20% |
| South and west of NC 540 | 30% for houses and townhomes, 25% for apartments and commercial |
| Planned Unit Developments | Set by council, starting from the numbers above |
The rule never says the set-aside has to contain trees. It never asks how many trees were on the land to begin with. And the list of what counts is mostly land a developer could not build on anyway, or was already required to leave alone.
The ordinance is candid about this. The sentence that sets the 30 percent number doesn't say 30 percent conservation; it says the project "shall provide buffers and RCA equal to or greater than 30% of the gross site acreage." The buffers were always meant to be counted.

Show as a table
| Counts toward the set-aside | Why it costs nothing |
|---|---|
| Floodplains | Can't be built on |
| Stream buffers and wetlands | Already required under Jordan Lake water rules |
| Slopes steeper than 3:1 | Too steep to build on |
| The landscape strips along property lines and roads | Required by a different part of the same ordinance |
| Stormwater ponds, including the water and the dam | Required anyway; counted at 100% |
| Solar panels on the pond dam | Equipment |
| Pools, tennis courts, playgrounds, lawns | Amenities the developer builds anyway; counted at 50% |
| Sewer and utility easements | Kept clear by the Town |
| Bare ground replanted with seedlings | Allowed when the site lacks enough of the above |
| Farm ponds, rock outcroppings, cemeteries, scenic views | Not trees |
The pond is the part to remember. The ordinance bans grading and tree removal inside a conservation area, then lists the exceptions, and the first one is digging a stormwater pond. The basin, the water and the dam all stay on the books as conserved land. Developers build those ponds because the Town requires them, to replace what the woods did for free. Then the rule counts the pond as the woods.
There are two more ways to owe less. Build denser, at seven homes an acre or more, and council can cut the set-aside by up to 10 points; that clause was added in 2020, in the same vote that raised the requirement. Or promise 10 percent affordable housing and ask for a 10-point cut; the same policy lets the developer pay a fee instead of building the affordable homes, and says paying the fee does not stop them from asking for the cut.
What this looks like on a real plan. We pulled the approved plans for the last four projects we could get. Every one met or beat its number. Not one set aside an acre of upland forest by choice. Ashburn, 15 wooded acres on Mt. Zion Church Road, approved 5–0 last October: its 31.5 percent is a creek buffer state law already protects, the landscape strips the ordinance already requires, two ponds, and half-credit for a lawn. Take out the ponds and the lawn and it falls short. Townes on 1011, 26 acres on Old US 1, being built now: its buffers came up 1.15 acres short, and a pond and two playing fields made up the difference.


At the April 30 work session on tree protection, the Town's planning manager, Amanda Bunce, "encouraged Council to keep in mind that Resource Conservation Areas are generally undisturbed areas that already contain tree canopy." Ashburn's set-aside is a creek corridor, two ponds and a lawn. Townes on 1011 hit its number with a retention basin and two playing fields. The plans do not match the assumption. Staff's own presentation that day said the amenity credit "directly undermines" the rule's purpose.
Gracewood and Welch Homestead. In that 2021 post, the development Mahaffey called "a massive disaster" was Gracewood, 233 acres in New Hill approved in 2017 under the old 25 percent rule. "There is zero chance this would get approved today as is," he wrote. Gracewood's plan sets aside 26.4 percent of the site, all of it in stream, perimeter and street buffers. No ponds. No lawns.
This April, council approved Welch Homestead, 83 acres on Old US 1, nearly all of it trees, 5–0, with Mahaffey seconding. Its application says of the conservation area: "This hasn't been determined yet." Its 35 percent is the 30 percent base plus a 5-point surcharge that applies when the developer bulldozes the lots flat, which the developer's engineer explained to council on the record: "5% extra for mass grading the single family."
From the drawings, the stream buffers, perimeter strips and utility easements the developer had to leave alone anyway add up to roughly 20 of the 29 acres. Ponds, which count at full credit, will take most of the rest.
The share of that forest Apex's rule saves, that nothing else would have, is on the order of five to seven acres out of 83. Mahaffey had sent the developer back to the Environmental Advisory Board in March to accept more of its conditions.
What came back: solar panels pre-installed on 13 homes, and nothing about keeping a tree. He called it "a big impact on quality." The "massive disaster" set aside more buffer than the project he seconded.
Part four
Who's at the wheel
None of this is new to him. On September 26, 2023, the same night council saw the county's study, it took up a proposal "requested by Council Member Mahaffey" to raise the south-of-540 set-aside to 50 percent, with buy-downs for solar and affordable housing. Council sent it to committee for more work. Three years later it has not come back. The number is still 30.
Four weeks after that meeting he told voters the controls were among the most robust in the state. Two years after that, council approved Veridea, the largest rezoning in Town history, in the same tier, under the same rule.
On April 30 of this year, at the tree work session, staff told council in writing that the credit for lawns and paved amenities "directly undermines" the rule's purpose, and that "no dedicated position currently exists" to review tree preservation; Cary, Charlotte, Durham, Morrisville, Raleigh and Wake Forest all have an urban forester.
Mahaffey asked the right question that day: whether "mandatory tree preservation measures had been evaluated." Staff said they could study it later. Since then: no tree amendment has come before council. The budget adopted June 9 funded 15.5 new positions and no forester. Under council's own new-initiative process, a funded forester cannot arrive before July 2027.
The Town's Plant the Peak program will give away about 250 trees in January. At the county's measured rate, Apex clears that much canopy every few days.
So here is the structure:
A council member who helps write development rules, and is the council's link to the board asking for stronger ones, took money from a trade group whose agenda he himself says has bought the legislature, and has told voters for five years that the rules are among the best in the state and that growth has stopped. The Town's own records show that neither is true. He has been in the room for every number in this article.
What the records cannot tell you is whether the $5,000 changed a single vote. The donation is real and legal. This article does not claim the money bought anything.
What it shows is that the man closest to the policy has described it to you inaccurately, repeatedly. You can decide what to make of that.
Final part
Trust, transparency and trees
During his campaign, Terry Mahaffey published three principles. Here they are in his words, next to what happened.
TREES. "A commitment to our natural environment. Development ordinances can be reformed as it relates to keeping existing tree canopy cover. We can have growth but provide a framework so new development better integrates into the existing environment; clearcutting and mass grading is not how Apex keeps its charm and encourages residential and economic advancement."
The ordinance has not been reformed. The set-aside rule is unchanged since 2020, still counts ponds and lawns, and still does not require a single existing tree to be kept. His own 50 percent proposal went to committee in 2023 and never came back. Welch Homestead, which he seconded this April, is 83 wooded acres that will be mass-graded.
TRANSPARENCY. "Knowing what governing bodies are doing, and providing visibility and accountability. Providing visibility into how Apex works in the areas of economic growth, development and citizen engagement. An informed citizenry is an engaged citizenry."
He told you the rules were among the strongest in the state; staff told council they undermine their own purpose. He told you growth was down 75 percent; the Town's number was 39, and he had posted the right figure himself five months earlier. When readers pointed it out, he did not reply.
TRUST. "Trust in our government; the processes and its commitment to listening to and serving the citizens of Apex. How can we continually assess our governing bodies and processes to keep them citizen focused. This also includes reaching out to other local governments to grow our region, because our citizens need advocates across all levels of government."
He wrote that no council candidate should take money from developers or their PACs. His words. He took $5,000 from the Realtors' PAC, which lobbies for the same bills as the builders. The board he serves as liaison sent council ten recommendations in April. Five months later, none is on an agenda and no forester is in the budget.
Those were his standards, not ours. Here is how to hold council to them:
- Fund the position. Staff said nobody at the Town is assigned to review tree preservation. Six neighboring towns have an urban forester. Ask council to put one in the budget now, not in July 2027.
- Set a real number. He asked in April whether a mandatory tree-preservation percentage had been evaluated. Ask council to put one on an agenda.
- Stop counting ponds. Staff already told council the amenity credit undermines the rule. Ask them to end it.
- Don't confuse campaigning with transparency. I get it. He's very active on social media. How's that working out for your property tax bill and new construction every time you turn around?
- Speak up. Speak at Public Forum. Email Council.
- Independently verify. If a councilmember tells you certain reporting is "fake news", "non-sense", or "misinformation" - fact check it. In the words of Terry Mahaffey, "An informed citizenry is an engaged citizenry."
Every document in this article is public and linked. If any fact here is wrong, write to us and we will correct it.
And, of course:
subscribe to The Peak Weekly to make sure you're always informed on the latest going on in Apex!


