Asset Movements - Planting / Seeding / Locations

Thinking about this a bit more. From a business operating asset perspective, the physical stuff you use in delivering your end product are all assets. Raw materials (seed, fertilizer, chemicals, etc) are all assets that are purchased and applied in the farming operation. In my case, seed and fertilizer are purchased and applied to a field area. From an asset perspective, seed is just a special case of the general “Inputs” case. All are physical stuff, have value to be tracked, and are true assets. The Plantings or Plant Asset is essentially a “Work in Process” WIP asset comprised of the growing location (factory), Raw materials plus value added (like labor expense). Raw assets get converted to WIP assets through activities (seeding for example). Eventually the WIP asset gets transformed to a Finished Product asset (grain in my case) through the Harvest activity. I think the data structures need to recognize the asset types and conversions that happen in the operational business of farming. This is how I am now trying to define things in FarmOS and working through ways to capture the Raw, WIP, and Finished Goods asset types.

2 Likes

Yes! Agreed 100% :slight_smile:

We are introducing a new Material asset type in farmOS 2.0, for what it’s worth. And all asset types can be used to track inventory. This will make it a lot easier to represent more things as separate assets, and to track how those assets are used (eg: an Input log that decrements your “N Fertilizer in North Barn” Material asset, and is applied to your “2021 Corn in North Field” Plant asset.

1 Like

From the standpoint of my use case, I’m looking for the Seed Asset entry to capture the records and the specifics of the seed itself. This would include, Organic Certifications, purity testing, germination data, purchasing information, photos of bag labels, etc. There are probably a half dozen things I capture for each seed lot/shipment. I’d note the storage location (like machine shed) as the central delivery/storage location. The same lot of seed from this common locations might get seeded/planted into multiple field areas. Last fall I purchased several thousand pounds of cereal rye seed that went into 3 different fields on my farm. The three Seeding log entries (one per field) would capture the location seeded with the seeding rate and other specifics of the field work. I wanted to show seed moving from the storage shed to the field in the Seeding entry. Unfortunately, using the Plantings asset for seed showed it moving from field to field. So as @walt mentioned, I’d probably have to enter the seed three times under three different lots and pick a given lot with each seeding. Given the how the current FarmOS rev is set up, I may consider treating seed as an Input. It seems like the Seeding entry should automatically create the new Plantings Asset entry based on the combination of a Seed asset selected and Field Area selected. Instead it expects this Plantings Asset(s) to be pre set up and the seeding action moves the planting around. This is very market farm or nursery oriented thinking where you are moving young plants from place to place. Transplantings does essentially the same thing without the Seed information entry fields… Rambling a bit, but hope this helps make my use case clearer.

Yea makes sense @graffte - and yea generally speaking farmOS has not focused much on the “pre-seeding” workflow - at least in the UI features. The data model can represent it - it’s just a matter of building more shortcuts/quick forms/etc for particular use cases. Have you seen the “Planting quick form” perchance? It basically handles creating the Planting asset + Seeding log in one step. Doesn’t meet your needs for intaking Seed stock data, but might give some ideas for how we could build something for that part of the workflow in the future.

1 Like

Clicked through a few times, but have not delved into the quick forms in any depth. I’ll take a look. Now that a few more tumblers are starting to fall into place, the combination makes more sense.

1 Like

I created a bare-bones seed asset type for farmOS 2.x some time back to facilitate testing how my data migrates from 1.x to 2.x; GitHub - symbioquine/farmOS_seed_asset: A 'seed asset' module for farmOS (You can see some details of my testing here)

That seed asset type probably isn’t ready for general/production use yet, but I’d be up for collaborating on polishing it up if folks want to experiment with it…

1 Like

@Symbioquine I’m open to adding the Seed asset type to farmOS core if others think that would be useful! It could be in the list of “optional” modules, so not enabled by default.

Maybe providing a quick form like the one described above would be a good next step too - geared at folks who want to track seed inventory as well.

If we did that, then your module could be just for your specific needs on top of that (and the 1.x->2.x migration that you need).

Since we’re adding the Material asset type it feels like Seed is the next logical one to consider. :slight_smile:

2 Likes

I think granular at seed level would be better because it helps to analyze the profitability. Like type of seed ( organic, inorganic, GMO or …), Company provider, Scientific name, Purchasing date, Quantity purchased, quantity distributed. There are many factors for productivity one is seed type.

What do you think if you add one table for seed that includes attribute like Seed_ID, Scientific-Name, Manufacturer (seed provider), date_Purchased and …

And make relation with general asset by using Seed_ID as a foreign key

1 Like

I thing most of asset need separate table and need relationship with asset table by using foreign key. When we see plant there are many factors to grow like soil (soil texture, soil nutrition, and …), seed ( seed type, manufacturer (Supplier), and …), geographical location, weather and …

So plant table needs relationship with soil table, Location table, seed table and …

1 Like

I can’t speak to the specifics of the database implementation, but sounds like this is functionally on the right track. As an organic certified grower, I need to track the sources and attributes of seed used along with where in the field areas it is planted (seeded). This is tracked through to the specific harvest lots and sale. Ultimately it would be useful from a production perspective to be able to track how a given seed variety from a given source performs in the different field areas over multiple seasons. Additional growing condition information for each field area for a given season needs to be able to be linked with the seed and area information to enable meaningful caparisons.

1 Like

Another potential detail to keep in mind, a given field area planting may be a seed mix of several different specific varieties of seed. This is particularly true where cover crops are used. I have seen cover crop seed mixes can be a dozen or more plant families and varieties. Seems like there will need to be a means for capturing the information for a given seed and then combining multiple seeds into a mix. The seed mix is ultimately what is seeded into the field area. I think I saw a means for creating seed mixes in FarmOS already. Need to maintain the seed mix capability.
From a field area perspective, the effectiveness of a cover crop would be evaluated by measure of biomass grown, soil organic matter changes, insect and worm counts, and other measures of how the cover crop mix affected the field area.

1 Like

May be distribute seed as it is better than distribute seed as a plant that is why I wanted to write about gathering all separately in a table and made relationship. For example, you may distribute X-amount certified seed to X-Location on September 20, 2021, that you bought from X-Supplier. So, you don’t need describe these all when you distribute from main store but Seed_ID. May be it is better than distribute seed as a plant.

This Seed_ID tells all about the seed and it may be a good information to analyze the result either good or bad. It also good for inventory.

Just to share my idea ::slight_smile:

1 Like

Hi @dhailu - welcome to the farmOS community!

Some thoughts in response to your ideas (and note I am mostly talking in the farmOS 2.x context, since that is where all focus on development is right now, and we are almost ready to release a beta - so some of this might be different from what’s available in 1.x):

Like type of seed ( organic, inorganic, GMO or …), Company provider, Scientific name, Purchasing date, Quantity purchased, quantity distributed.

The Organic module provides “Organic” and “Not Organic” flags, which can be applied to Assets and Logs. So if we added a Seed asset, you could mark them as such. You can already mark Seeding logs that way.

Scientific name should probably be on the “Plant type” term (aka the “Crop/variety” that is referenced when you create a “Plant” asset - as well as when you create a “Seed” asset - @Symbioquine’s module includes this already: farmOS_seed_asset/Seed.php at db9484bc643c409ede390a5c02671f82f666c6b3 · symbioquine/farmOS_seed_asset · GitHub). This would be a good feature request to open (“Add scientific name field to Crop/variety terms”).

The Seeding log type has a “Source/supplier” field for recording where the seed was obtained, as well as a “Date purchased” field to Seeding logs as well. You could also use a Purchase log to record this information perhaps, which would give you the ability to record Quantity purchased (as well as increment seed inventory accordingly).

Quantity distributed should be recorded on a Seeding log when you actually plant the seed. This log could also be used to decrement the seed inventory accordingly.

What do you think if you add one table for seed that includes attribute like Seed_ID, Scientific-Name, Manufacturer (seed provider), date_Purchased and …

And make relation with general asset by using Seed_ID as a foreign key

I thing most of asset need separate table and need relationship with asset table by using foreign key. When we see plant there are many factors to grow like soil (soil texture, soil nutrition, and …), seed ( seed type, manufacturer (Supplier), and …), geographical location, weather and …

So plant table needs relationship with soil table, Location table, seed table and …

It might be worth reviewing the farmOS data model docs a bit to understand how records and their relationships are represented: Introduction - farmOS 2.x Docs

This also covers how “location” works in farmOS: Location - farmOS 2.x Docs

All of the above is just to share how many of these things can already be represented in farmOS… but the larger idea of creating better reporting UIs would be great! By looking at the granular records, these reports could potentially summarize many of the things that you and @graffte are interested in!

Hope that’s helpful!

1 Like

Given this is a database tool supporting farming and seed is an important asset for a majority of farm operations, I find it odd that seed is not included as an asset type or that it is even questioned as an asset. Seed is a fundamental, expensive, and critical asset to track. If you farm crops, you need to manage seed as an asset. You add and subtract from an inventory. Move from seed inventory to fields creating a new plantings asset. You may harvest your own grain, clean it and return some to seed inventory in your operation. Seed must be an asset.
The seeding log has some of what needs to be tracked and a purchase log relates to some seed transactions, but neither really encompasses the breadth of what needs to be tracked and managed. Keep the seed tracking and movement recording they provide.

1 Like

I find it odd that seed is not included as an asset type or that it is even questioned as an asset.

There’s no questioning it @graffte! Just haven’t done it yet… are you volunteering? :wink:

Or to be more specific, @Symbioquine HAS done it. And I’m proposing we merge that into farmOS core:

This is the process. :slight_smile:

If you farm crops, you need to manage seed as an asset.

I generally agree with you. But remember that farmOS is not only for large row-crop operations. For smaller operations, who only use farmOS for organic certification, Seeding logs may be enough. What is “critical” for one use-case may not be for another. Hence why it hasn’t been added yet.

That said, let’s do it! I’m all for it. :slight_smile:

2 Likes

I took a quick pass at this, with two pull requests:

  1. In farmOS (to add seed asset type): https://github.com/farmOS/farmOS/pull/438
  2. In @Symbioquine’s module to remove the seed asset type and depend on the new upstream module: https://github.com/symbioquine/farmOS_seed_asset/pull/1

@Symbioquine Would love to get your eyes on both of these if/when you have a chance! I gave you commit credit since it was almost a direct copy from your module.

2 Likes

I still saw an “if” somewhere in the discussion thread so I just wanted to underline the seed asset topic in case there was still uncertainty. In the greater scheme of things for row crop farming, I’m a small operator.

Regarding the organic certification… I’m in the midst right now of completing my organic certifications. One of the key audit trails is called “Trace back”. You need to show the auditor the trail from harvest back to the seed purchase records. This is pretty easy to do in FarmOS when you can click on the harvest log and bring up everything that went into that harvest. Having FarmOS set up even in the 1.x generation has really helped pull together records for the certifier.

2 Likes

Took a look at the Seed attributes on Drupal. List seems to cover things well. Nice to see the seed search aspect listed. A seed search activity logging capability tied to the seed asset could be very helpful. Something that would be well suited to capturing action within the phone app.

Just to be clear @graffte the pull request I created JUST adds a Seed asset type, with two fields: Crop/variety, and Season (both identical to the fields on the Plant asset type, which is what @Symbioquine used as a reference). The Seed asset will have all the default properties/relationships that assets have (described here). But the PR I created does NOT address the broader list of features that @mbomford listed in the original drupal.org feature request issue.

But, for the sake of comparison, here’s that list along with some notes/thoughts:

Crop - Use existing Crop/variety reference field.
Variety - Use existing Crop/variety reference field.
Botanical name - No dedicated field currently.
Family - Use existing Crop Family reference field.
Functional group - Not sure what this was for.
Supplier - Seeding log has a field for this. Might make sense to add one to Seed asset as well. Could also be recorded in “Seller” field of Purchase logs that reference the Seed asset.
Lot number - Seeding log has a field for this. Might make sense to add one to Seed asset as well. Could also be recorded in “Notes” field of Purchase logs that reference the Seed asset.
Date received - Record in a Purchase log probably.
Quantity received - Record in a Purchase log probably.
Date of last use - This could be recorded in Seeding log that references the Seed asset to adjust it’s inventory perhaps.
Quantity remaining - If you use inventory management on the seed management this is calculated for you.
Certified organic? - Use flags provided by the Organic module.
Sources checked for organic - No dedicated field currently. Recommend using Notes.
Seed treatment - Maybe a dedicated field would be useful for this, or just use the Notes field, if seed was purchased pre-treated and that is necessary to document. Or, if you are applying the treatment yourself I would use an Input log to record that personally.
Notes - Core field on all assets

Some of these things could be handled in different ways, depending on the use-case. For example, Supplier and Lot Number… I could see a case where you have a single “Corn Seed” asset, that tracks ALL your seed inventory, which actually comes from multiple suppliers with multiple lot numbers. In this case, it wouldn’t make sense for those fields to be on the Seed asset itself, but instead recorded with each Purchase log that increments that Seed asset’s inventory.

If that makes sense! :smiley:

Lots of ways to slice these things… which is both an advantage (flexible data model allowing you to develop your own conventions), and a challenge (building higher-level features requires limiting the use-cases, which is why I also like to see that happen in UI modules, not at the data model layer).