Designing Buck List

Buck List hero. Buck profile screen in the Moultrie app
role Product Designer (design lead)
timeline April to August 2025
team 2 Designers, Product Manager, Engineering, Machine Learning
skills
Product DesignUser ResearchUI/UXFeature Design

Launched Buck List, a system for identifying and tracking individual bucks across trail camera images. I led design for the feature and owned the design decisions, working closely with a second designer through exploration.

27% vs 30% target
adoption
300,000+
bucks identified
2.7 → 4+
images per buck

Every profile users built also trains a machine learning model for automatic identification, currently in beta. Phase 1 had to be worth using on its own, and it had to generate the data Phase 2 needs to exist.


Problem

Hunters are more likely to take a trophy buck if they know when and where that buck shows up on their trail cameras, and they plan their hunts around those patterns.

Our app had no tools for collecting or categorizing trail camera images at the level of an individual animal. Hunters were working around it with basic photo albums.

For Moultrie, that was also a business problem. The premium hunt planning subscription is built on helping hunters make better decisions, and individual buck tracking was a core hunter behavior it didn’t serve. Solving it well would strengthen the subscription’s value.


Where This Started

Buck List grew out of design exploration I was doing for a different feature. Deer Survey gave users population estimates based on a manual count of unique bucks across a set of images. On mobile, that meant reviewing images in the gallery, then going back to the survey to type in a number.

1st screen in Deer Survey mobile manual buck count flow2nd screen in Deer Survey mobile manual buck count flow3rd screen in Deer Survey mobile manual buck count flow
Deer Survey's original mobile flow: review images in the gallery, then return to type in a count.

While designing Deer Survey for web, I wanted to make that review faster, so I designed buck profiles that sorted images by individual buck and held tine counts, notes, and a name. When I presented the work, leadership saw more value in tracking individual bucks than in the survey itself. Deer Survey for web went on the backburner, and the roadmap was reprioritized around what became Buck List.

Early lo-fi wireframe of a buck profile screen, with placeholder fields for name, age, points, last seen, favorite spots, and notes above a grid of image placeholders
The original lo-fi concept of a buck profile.

Research

I inherited findings from an internal Moultrie survey of 3,844 deer hunters, which put numbers to both the behavior and the opportunity. The average user sees about 5.5 unique bucks in a season. 67% keep a seasonal target list, and 73% of those manage it with a photo album on their phone or computer.

My job was turning those findings into design priorities. Two stats did most of the work:

85%
wanted time-of-day for a specific buck
77%
wanted to know which cameras a buck appears on

Product Approach

Phase 1 is manual. Users review recent images, assign them to profiles, and build a record of which bucks are on their property. Each profile captures a tagged image gallery, a profile photo, antler point counts, notes, and automatically surfaces when and where the buck was last seen. Phase 2 uses AI to identify matches and new bucks automatically.

Buck List tab in the Moultrie app gallery, showing a list of named buck profilesA buck profile screen showing last-seen time and location above a grid of tagged imagesImage detail view showing an image tagged to two buck profiles, Ghost and Titan
A Buck List profile: browse bucks from the gallery, open a profile to see last-seen time and location, then tag new images directly from the image detail view.

The product owner’s one-pager set a target of 30% of users creating at least one buck profile by the end of the 25-26 whitetail season. That meant profile creation had to be nearly effortless. And because patterns only show up across repeat sightings, the system had to encourage hunters to keep tagging over time.

Every friction decision in the manual experience was also a data quality decision.


Design Decisions

Designing the Profile

A buck profile screen showing last-seen time and location above a grid of tagged images
The finished profile screen: last-seen time and location lead.
considered An exact age year field. Hunters do think about a buck's age when deciding whether to target it.
chose A simple toggle between young and mature.
why Estimating age from a trail camera image is difficult. Asking for an exact year makes the task slower and harder. Simply choosing between young and mature lets hunters see at a glance which bucks to let grow and which to target.

The question of what to lead with when a hunter checks a profile was challenging. From the survey, I knew they are most interested in when and where a buck shows up.

considered Most-seen time and location. It was my first instinct, since hunters build their strategies around patterns.
chose Last-seen time and location.
why Last seen is more actionable for the hunter. If a target buck showed up yesterday afternoon on the east side of the property, sitting there at that time may be their best bet. They can still dig into patterns in the profile's image grid, or on the Activity page, which charts time of day and camera activity for a single buck.

A Workflow Built for Volume

Hunters reviewing new images might be sorting through hundreds of photos, almost always on a phone. I designed the flow so they can tag a whole run of photos at once, which is common when a buck hangs around a feeder. For harder calls, they open individual photos for a closer look.

The harder part was giving users something to compare against when an image wasn’t obvious. Fitting two trail camera images side by side and expecting users to read subtle biological cues like tine count, spread, and brow tine shape is asking a lot on a phone screen. We solved it with a flyout sheet of profile pictures that users can pull up over a new image to browse their existing bucks.

Flyout sheet of buck profile pictures open over an image detail viewFlyout sheet showing a larger profile picture for comparison against the incoming imageFlyout sheet dismissing after a buck profile is selected for tagging
The flyout sheet uses larger profile pictures than the gallery grid, making it easier to recognize the same buck across pictures taken in different contexts.

A Guided AI Confirmation Flow

For Phase 2, I designed a flow where the AI suggests matches and users confirm them before anything is saved. The team went with a fully automatic version for the beta, and I come back to that in the reflection.

Buck profile screen with a prompt saying new photos were found that match this buck, with options to review or dismissConfirm this match screen with the current photo selected in full, alongside a thumbnail of the profile photoConfirm this match screen with the profile photo toggled to full size for comparison against the current photo
The confirmation flow as designed: a prompt on the buck profile surfaces new matches, then users toggle between the full profile photo and the current photo to confirm.

Adapting When the Plan Changed

About three weeks before development started, a research spike came back with bad news. The bounding box data from smart tagging that we planned to use for automatic profile image cropping was not going to be available in a usable way.

Without automatic cropping, the fallback was to stretch the full trail camera image into the square thumbnail. The images came out distorted, and if two bucks showed up in the same photo, their profiles ended up with identical thumbnails.

considered Stretched full-image thumbnails, which didn't add a step to profile creation.
chose A manual crop step during profile creation.
why Hunters create a profile once, but they check it over and over. One extra step at creation is worth a clear thumbnail every time after that.
Crop Buck Photo screen with a resizable frame over a trail camera image and a slider to adjust the crop area
The manual crop step, with a prompt to center the buck.

Once the product owner agreed the extra step was worth it, I worked with the developers to adapt the cropping tool from Syncfusion, a component library we already had access to. We could restyle it, but we couldn’t change how it worked.

Most of my changes were about keeping the photo visible. The crop is locked to a square, so its four corner handles all did the same thing while covering part of the image. I replaced them with a single size slider. I also added a drop shadow to the drag handle so it shows up on the bright patches common in trail camera photos.


Outcomes

Phase 1 launched in time for opening day of deer season.

Adoption: 27% against a 30% target. We missed by three points. Profile creation takes effort up front, and we shipped without a usability testing round that might have caught friction we couldn’t see. But I think the bigger reason is awareness. The app has grown a lot in a short time, new features have gotten harder to notice, and we haven’t done enough to address that.

Identification: over 300,000 unique bucks identified. Images per buck also grew from 2.7 to over 4 across the season. Hunters kept adding to profiles after they made them, which is the repeat tagging the system was designed for.

Internal forecasts estimate the feature will add $11.8M in subscription revenue in FY27.


Reflection

If I had another pass, I’d start with the comparison flyout. On a hard call, users have to remember the new photo while they scroll through their bucks, since they can’t see both at once. A usability testing round would have caught that early, but we ran out of time before the season deadline.

Phase 2 is in beta now, and the team took it in a different direction than I recommended. Instead of suggesting matches for hunters to confirm, it identifies and creates bucks automatically in the background. Early feedback has been mixed. Testers say the automatic IDs aren’t accurate enough yet, but they’re also excited about the feature and say they plan to use it a lot. I still think a confirmation step is the best way to earn their trust while the model improves, since every correction a hunter makes is also better training data.