Plenty of organizations want to know roughly how old their visitors and members are without asking for a full date of birth. A senior discount, a youth program with an age cutoff, a grant report that breaks attendance down by age group: all of those need a year, not a birthday. Asking for less is also kinder to the people filling out your forms, and it means you hold less personal data if something ever goes wrong.
Altru gives you a few ways to record a birth year. Each one behaves differently once you try to query, report, or clean the data, so it’s worth choosing on purpose instead of letting each staff member improvise.
Option 1: The birth date field on the constituent record
Individual constituent records in Altru have a birth date field, and that’s the first place to look. In many Blackbaud products this kind of field accepts a partial date, meaning you can enter just a year (or a month and year) and leave the rest blank. If your Altru database accepts a year-only entry there, this is usually the cleanest choice: the data lives where anyone would expect it, and it travels with the constituent through merges and exports.
Before you commit, confirm the behavior in your own database rather than assuming:
- Try it on a test constituent. Enter a year only and save. If Altru rejects it or quietly fills in January 1, you know the field expects a full date in your setup.
- Query it. Build a constituent query that filters or outputs on birth date and see how the year-only record shows up. Some filters work cleanly with partial dates and some don’t, so check the exact filter you plan to use for reports.
- Check any age calculation. If you use age anywhere (a smart field, a report, an export to another tool), make sure it handles a missing month and day the way you expect.
If you’re unsure about any of this, Blackbaud support can tell you how partial dates are handled in your version, and a sandbox is the safest place to experiment.
One warning: don’t enter a made-up full date like January 1 just to get a year in. Six months later nobody will know which birthdays are real and which are placeholders, and anything that uses the full date (a birthday email, an age-on-visit-day check) will be wrong for those records.
Option 2: A constituent attribute
If the birth date field doesn’t work for year-only data, or you deliberately want to keep birth year separate from real birthdays, create a constituent attribute for it. Attributes are Altru’s custom fields, and they’re queryable like other constituent data.
A few setup choices make a big difference later:
- Use a number or a tightly controlled format, not free text. Free text invites entries like “1980s,” “approx 1975,” and “’92,” which you’ll have to clean before any report works.
- Allow only one value per constituent. Two birth years on the same person is a data problem waiting to happen.
- Name it clearly, for example “Birth Year,” and write a one-line description so nobody confuses it with a membership start year or a “member since” value.
The trade-off is that an attribute sits outside the standard birth date field, so built-in features that look at birth date won’t see it. For most reporting needs that’s fine, because you’ll be writing queries anyway.
Option 3: Don’t store year at all, store the category
Sometimes what you really need is an age group, not a year. If the only question you ever ask is “is this person a child, an adult, or a senior?”, consider whether a year is even the right data. That said, an age group goes stale (children grow up and seniors were once adults), while a birth year stays accurate forever and can always be turned into an age group in a query. If you’re going to collect anything, the year is usually the better long-term choice.
Households and children
Birth year often comes up for family memberships, where you want to know which household members are kids. Record the year on each individual constituent in the household, not on the household itself, so it stays attached to the right person. Before you collect data on children, check your organization’s privacy policy and any rules that apply to collecting information from minors online, and only gather what you’ll actually use.
Getting the data in
Deciding where to store birth year is the easy part. Collecting it consistently is harder:
- At the desk, add it to your script for membership sign-ups only if staff will reliably ask. A field that’s filled in for some members and not others makes every age report misleading.
- Online, check whether your Altru web forms can capture the field you chose and map it to the constituent record. If you can’t confirm that, test a submission end to end before you announce the change.
- From imports, map the incoming year column to the same field every time, and decide in advance what to do when an existing record already has a different value.
Quick answers
Can I calculate age from birth year in a query?
You can get an approximate age by comparing the birth year to the current year. It may be off by one depending on whether the birthday has passed, which is usually fine for age-group reporting.
Should I move existing full birth dates into a year-only attribute?
Generally no. If you already have a real full date, keep it in the birth date field; it already contains the year. Use the attribute only for people where you collected a year alone.



