Almost certainly age, and probably not for the reason you are assuming.
Those codes are usually a production stamp: a letter or digit for the year, something for the month, something for the day, and often a factory or line identifier. They are not standardised across companies and are not really meant for consumers, which is why they need deciphering at all. Comparing the codes on two bags from the same producer will usually show you which fields change together over time, and that is enough to work out the date positions without any documentation.
But here is the thing about your case: the two bags may well have been roasted within a day of each other. Large producers roast continuously, and a shop restocks on its own schedule. Two bags bought three months apart can come from nearly identical production and have spent very different amounts of time on a shelf.
So the variable is usually not roast date. It is how long the bag sat, and under what conditions.