Definitely, I'd love to have an inventory feature! I'll just brainstorm for a moment, and hopefully you can pick out anything good from what I ramble on about....

Stating the obvious first, it should record the amounts of the ingredients that I have in stock. It should allow deducting the amounts as they are used. It should allow tweaking the specs of an ingredient without permanently editing the preset value of the ingredient in the main database (e.g., if my fuggles are 4.0% alpha, I want my inventory entry to say that and import that into my recipes, but without overwriting the default 4.8% alpha that is in your database). And when building a new recipe, I should be given an option to see only ingredients in my inventory.

I think Bill's recommendation a few days ago on the Feature Request thread for an interface is a good idea: Adding an Inventory button next to Browse and New to access your inventory db.

About automatically deducting as ingredients are used, that can be tricky. I would not want it to reduce the inventory before I actually brew and use the ingredients. On the other hand, if I preplan all of my brew sessions for the upcoming month, it would be nice if my inventory were somehow marked to reflect that those ingredients are "allocated". That way, for example, if I create 3 recipes one night for my next 3 beers, I would like for BTP to warn me that the first two sessions will use up my EKG hops, not leaving me enough for my third. I'll also add that I don't like the "Final" concept in ProMash's inventory, because there is no way to undo the Final, and if you copy an old session file to use as a starting point for a new one, it will already be marked as Final and won't allow deducting from the inventory. I hope that Final concept can be avoided in BTP, or at least that it be reversible later. I guess what I'm thinking is something like a "Deduct from Inventory" button, when clicked it updates the inventory db and locks the recipe's ingredients from future edits, and enables some "Undo deductions" button that would replace the ingredients in the inventory and unlock the recipe.

Don't know how difficult it might be to implement, but it would be really cool if the ingredient list in any recipes that I might open -- whether my own or those created by another -- would indicate which ingredients are missing from my inventory. The indication could be by a "flag" in a special column on the ingredient list, or perhaps the list could display those ingredients in a different color. That way I would know immediately when I open a recipe if I have everything, and it would be much faster than having to manually check for each ingredient. Of course, I'm talking about features that would be in a "dream machine". I would also immediately know what to include on my shopping list, ... speaking of which ... another useful feature for inventory would be a field, or text color, that would indicate that additional quantities are "on order" or something like that.

EDIT: Also wanted to mention that it should have the ability to add 'non-ingredient' items -- such as bottle caps, sanitzers/cleaners, hop bags, and other things used for brewing so that they can all be monitored in a single place.

I would like the program to take a look in my brew closet and figure out how much of everything I have. Alas, that's not realistic, so I third (or fourth) the ideas Brant suggested. That all sounds quite good.

To follow up on the "alert me if I don't have something in stock for my recipe" idea. If it can see what I have/don't have then it would be nice to have a button to print a shopping list of what I'm missing.

Ok, and this is a pipe dream kind of thing but while you are asking... If it knows my ingredients in stock, search my recipes to see which ones I can brew with what I already have on had. Would be nice if time suddenly freed up to get a session in and I just asked BTP, what can I brew? and it spit out a recipe or two that I could just get started on.

Brant wrote:...It should allow tweaking the specs of an ingredient without permanently editing the preset value of the ingredient in the main database (e.g., if my fuggles are 4.0% alpha, I want my inventory entry to say that and import that into my recipes, but without overwriting the default 4.8% alpha that is in your database).

Brant, I'm not sure what you mean. Since the alpha acid changes from crop to crop what is the harm if it is changed in the DB? Why keep the original value?

ColoradoBrewer wrote:Snip ... Since the alpha acid changes from crop to crop what is the harm if it is changed in the DB? Why keep the original value?

This is a good point which caused me to check my hops inventory, and I now have a couple of important questions and comments for Jeff and Lathe.

All of my inventory should be fresh, having been purchased from my local Homebrew shop no longer than a few months ago. Hmmm ... I looked for a date on each package, and there is none; that's not a good idea, so I guess I'll need to start marking them. Anyway, they are all packaged by "Crosby & Baker", and this is how they differ from the BTP database in alpha acid content:

1. Without exception, every single one of my seven hops in inventory varies from the BTP database (and I'm counting the 'Cascade' just once); some variation is very substantial, such as 'Styrian' with a 33% to 50% difference in values, depending on which value you start with. A few others vary in the range of about 10% to 20%. These differences are bound to have a significant impact on recipe formation, and I guess the obvious solution is to compare the BTP database with all hops coming into inventory. Will you have an easier, more convenient solution for this? If there is no practical way to keep the database accurate, then please let me suggest that user's discovering this by accident is not good and that you should add another field in the vicinity of "Boil Time" and "Stage" that will require user's to fill in the alpha acid value, perhaps with it defaulting to the BTP database value. At least that would draw this potential problem to everyone's attention (a reminder during each batch), and if values vary that much from supplier to supplier, this would also allow 'fixes' for a batch without actually changing the database which might actually be the more common and typical value. That would accomplish what Brant was asking for.

2. Although I realize that "utilization" is affected by pellets vs. whole, which is why there is a "pellet ... correction" built into the BTP utilization calculator, I was not aware that alpha acid content would also vary; see the difference in the cascade listings, above. If it is true that alpha acids generally vary by form of hops, then it would seem to me that BTP would need to have two listings for each hops -- whole and pellet.

3. Maybe my hops inventory is from the previous year (or two ) since the packager did not date stamp the packets; that might explain why my values differ from your database; if so, this just underscores my suggestion in #1, above, but also prompts me to ask this last question. If the variation is due to crop differences, as explained by 'Colorado', will BTP somehow update it's database each year? How is that going to be handled?

4. Finally, in your browse list for hops, under the listing "Fuggles", it indicates that "English Fuggles" is a suitable substitute, but it is not listed in the database. Likewise, I note that I have "German Perle" in inventory, and your database merely lists "Perle" but then shows the 'origin' as being in Germany or the USA. That could explain the difference in A.A. per my inventory and your list, and makes me wonder whether there should be two separate entries in the database.

Thanks.

Bill Velek

Last edited by billvelek on Thu Feb 01, 2007 1:10 pm, edited 1 time in total.

I believe the BTP %AA values are an average or typical value for a given type.
This is a useful number to have if you get hops whose absolute value isn't available (homegrown or repackaged).

%AA values vary, within an approximate range for the type, from year-to-year, country-to-country, farm-to-farm, field-to-field, and plant-to-plant. Be aware that hop %AA changes over time and depends on storage conditions. Some people use initial %AA values, as listed from an analysis performed, probably, soon after harvest, then calculate how much is left based on how far the current date is from harvest. It's impossible for someone to tell you the %AA your hops are without sending them out for analysis.

I've bought two bags of the same strain of hops on the same day, from the same shop, and probably harvested the same year, with different listed %AA.

Understood, Slothrob. But this definitely underscores the need to double check the %AA in your hops to ensure that it is the same as the database, or to adjust it if it is different. It makes a difference, so all brewers need to remember to check that, and some sort of a reminder from BTP to do so would be handy -- especially for users who are unaware of the potential difference. If not an actual %AA field on the bar where quantity and boil time are adjusted, then at least a popup message as a reminder would be very useful. In fact, as Jeff is working on the 'Inventory' feature, please consider adding a field for the %AA of hops that are in stock; that way, selected ingredients from the inventory could automatically insert the different %AA value into the recipe for calculations, etc. I think that that would work perfectly.

And this brings up another question/comment -- I haven't seen a hop alpha degradation feature in BTP. I know Pro Mash has that (and I think Beersmith as well). As mentioned above, the hops I bought three months ago have already lost some of their alpha potential -- that would be a nice feature for us geeks to have.

I assume that you're speaking about buying hops in bulk and then trying to reseal the bags?? It's definitely cheaper, and I used to do that but finally decided that it wasn't worth the hassle. Now I buy mine in 1 oz. packs sealed in nitrogen filled mylar. Hopefully they aren't degrading -- but I never actually noticed that they are not dated. Gosh, they might be a couple of years old for all I know.

How does the degradation tool work? I assume you have to enter a date somewhere. Interesting.

From my understanding (I don't have Pro Mash, so this is just based on what others have told me), you enter the original alpha, date, and storage conditions (ie, storage temperature, type of container, O2 free or not, etc) and Pro Mash will give you an estimate of the alpha level at present.

With some hops that store well, the difference probably won't be noticeable. But, some hops, like Cascade and Saaz, are notorious for having poor storagabillity. For those, the "hop degradation" tool would be a lot more important.

You can get some info on how well your hops will store by checking Hop Union and Yakima Chief.

I can see where a hops degradation tool would be useful, then, and hopefully it can be added as yet another feature. Poor Jeff must have a list as long as his arm. By the way, I have never tried any other programs, and just assumed that BTP, being the latest, would be 'state of the art' and have all of the features of existing software. I'm not complaining as long as important stuff that is missing is eventually added. Meanwhile, I'm going to check into this further when I have extra time, and find out why the distributor doesn't at least put a date on the packets I've been buying. I might just need to start buying hops somewhere else.

EDIT: Jeff, if you can do it, I suppose a 'date' field in addition to a '%AA' field in the 'Inventory' would be useful -- not so much for tracking it in inventory as for having it available when using any 'hop degradation' tool that you might decide to add. In addition -- if I'm not asking for the moon -- having any degradation tool work automatically to adjust %AA as soon as they're selected from inventory would be useful. A user would input, as part of an inventory entry, the original %AA, the date, and how they are stored, and then just let BTP do the rest when that hop is selected.

Brant, I'm not sure what you mean. Since the alpha acid changes from crop to crop what is the harm if it is changed in the DB? Why keep the original value?

My take on it is that the db has good defaults, and I don't want my specific changes for a particular purchase to change their values. There might not be any real harm in changing the delivered db, but personally, I'd rather have the original values to reference later. Also, and more importantly, when I'm running low on a favorite kind of hops, I buy another pound before I run out, so for example, I might have two bags of EKGs with different alpha acid percentages. That would mean that I need separate EKG entries in my personal inventory db, each with a potential of having different values. I don't see how that could be possible to do if the inventory was tied to closely to the default db.