Understanding Seed Assets + Seeding Logs + Plant/Seed Locations

ADMIN EDIT: Moved from other thread about documents/SOPs

I know this is not the right place for this, but I saw the reference to Movement. This prompted me to respond here.

I have a real difficult time with using the Movement feature to the point where it is useless really. The main problem is that it move ALL the asset to the location identified. The last move defines where the all of the Asset is located. Look at a Seed Asset. I may plant the seed in 3 different fields. One inventory of purchased seed is split up and distributed to 3 field locations. If I use Movement, it will only show the last field planted in the Seed Asset as it’s location, not all 3 of the fields. Probably another unintended use case conflict. Seems like it could be useful but it can’t treat the last move as where everything is located.

1 Like

@graffte It would be unusual to move the seed to a given field - unless perhaps you were just storing it there somehow. More common would be to create a seeding log which references the seed and is part of a new plant asset located in that field.

There’s lots of ways to model that relationship, but in my case I decrement the seed inventory as part of creating the seeding log;

You’ll notice that my seeding log is a movement, but it only moves the new bean planting to the correct bed/geometry.

Decrementing the inventory of the seed serves as the reference so I know what was planted.

The parent relationship is another way that relationship could be maintained. Alternatively, I think some folks (who don’t bother with dedicated seed assets) just reference the seed supplier’s name and the lot # in the data fields of the seeding log.

1 Like

I would suggest the same thing as @Symbioquine: treat the “planted” seed as their own separate assets. That is the best way to model it. The best way to streamline that data entry/management is a separate question… but one I’d love to brainstorm around (in a separate forum topic). The benefit of modeling them as separate assets is your seed can be split up and used to create multiple plant assets in different locations, and even across different seasons. As soon as you start treating something differently (different location, activities, inputs, etc), it should be its own asset.

1 Like

Yes I get all that. I set up new assets for a PLANT when the SEED goes into a field. SEED plus Seeding LOCATION (field) = PLANT for me. PLANTS are fixed location assets in my case (unless they figure out how to walk on their own). Problem for me has been that Seeding moves the SEED asset completely to the last field Seeded. Honestly, I have to put time into figuring out this puzzle and how you all envisioned it was supposed to work. When I dove into inventory management and movement, things got messy real fast. I have not had time to invest into figuring it out.

1 Like

This is happening because you are (presumably) listing the seed asset under the “Assets” tab of the seeding log - and since the seeding log is a movement it has the effect of moving all assets thus listed to the location/geometry of the log’s “Location” tab.

What I was suggesting is that instead of referencing the seed asset that way, you can model that reference elsewhere - which will avoid the seed asset getting moved.

It could be modeled as the inventory asset (on the “Quantity” tab) which is decremented (as I’m doing) or as the parent directly on your plant asset.

Then another option would be to simply unselect the “Is Movement” toggle on your seeding logs and the log will not impart a location or geometry on the assets it references.


1 Like

@graffte Yea ultimately I think we really should make some standardized UI to help support this. The data model that @Symbioquine describes is a good way to model it, but (as with many things) it’s tedious to record it manually.

Perhaps the “Planting Quick Form” could provide an option to select a Seed asset to draw from? That could be used to populate the “Crop/variety”, and could automatically make the Seed a “Parent” of the Plant asset that is created.

The Seeding log that is created could optionally have an inventory adjustment added to it as well. Although this may require some additional UI in the quick form because in many cases the inventory adjustment units will be different from the seeding quantity units. For example, I might want to say “reduce my seed quantity by 10 lbs” AND “seed 1 acre of total area”. Currently the Planting quick form only asks for a single quantity, and it is assumed to be the latter.

1 Like

Sounds like a good idea, I did something simliar i my assetlink plugin FarmOS-Asset-link-plugins/Plants/PlantPlantsFromSeed.alink.vue at main · jorblad/FarmOS-Asset-link-plugins (github.com) I didn’t add the seed as a parent even if that is a good idea but I did decrease the seed quantity.


For me, Seed is a physical business Asset. I need to follow the assets through my purchases, seeding (creates a associated Plant asset) field operations, harvest, and eventually to a Product Asset for sale. I’ve been through various permutations for getting all this to tie together. Creating assets and including the asset involved in a log seems to be working. I have been turning off the “Is Movement” switch for Plant Assets, as said, my plants don’t move. I have to turn movement off for Seeding because it moves all Seed Assets to the field location last referenced. In reality, I am moving Seed Assets to the field location, and planting it. I’m just not moving all of the seed. The seed can end up in multiple fields. Each field has a unique Plant Asset because in my system the Plant Asset is a combination of Seed Asset+FieldLocation.
I’d like to sort out how to apply the inventory inc/dec features. However, I don’t see a way to get these tied to the Seed Asset involved or the Product Asset produced The only quantity based entry that ties in an asset is a Material Asset.

1 Like

Note… my Plant Assets do have a fixed location so the “Is Location” switch can be turned ON. Material (sprays, fertilizer) can be moved to the Plants. However, this also runs into the everything associated with the Material Asset moving to the last Plant or Field where it was used. Material is like th Seed case, it all doesn’t necessarily get used only in one location.

1 Like

I have been adding the Seed Asset as a parent of the Plant Asset created in the Seeding log.
I’ve been using the Crop/Variety field as a general category reference versus a specific Seed or Plant. I’ll use Seed/Plant/Product assets for any specific organic inventory controlled stuff. The Crop/Variety is like “#2 Yellow Dent Corn” where I might have multiple different seed supplier numbers in different fields creating different product Lots that are the managed assets. So I’d rather be managing quantities of the various assets not so much a “Crop/Variety” that’s more a general category reference for me.

1 Like

I have a cross reference I created to keep my record data entries consistent. There are a lot of ways and places to enter information. Easy to lose track of where stuff is located when sitting in front of your organic inspector while being audited. I also have created a Crop record entry checklist to be sure I don’t forget to enter various bits of this information over the course of the season, See the …Soybean… pdf for reference. Not every record I need to capture for organic records is available when the activity is performed. I need to keep track of what’s missing to go back and complete the record later (sometimes months later).

Crop Production Tracker 2023 - Soybean BH N2358 2023 RT402 CPT.pdf (345.2 KB)

Crop Production Tracker 2023 - Records to FarmOS Cross Ref.pdf (301.5 KB)

1 Like

I would recommend thinking about this differently. Here is how I would model it:

  • Use a seed asset to represent your inventory of a particular seed.
  • Create a plant asset and a seeding log whenever some of that seed is planted in the ground.
  • The plant can optionally reference the seed as its parent, if that’s useful for traceability.
  • The seeding log should reference the plant asset in the “Assets” field of the log… it should NOT reference the seed asset there.
  • The seeding log should be a movement. That is the default behavior of a seeding log. And the plant asset should not be “fixed”.
  • Add a Quantity to the seeding log which references the seed asset as an inventory adjustment, which decrements the amount of seed that was used.

This serves to link both the plant and seed assets to the seeding log, for different purposes. It’s better to think about it as “I am seeding the plant asset” rather than “I am seeding the seed asset”. You are decrementing the inventory of the seed asset in the process of seeding (creating+locating/moving) the plant asset… if that makes sense. :slight_smile:

Even though your plant’s “don’t move” during their lifecycle (after being seeded), it is still better to use the default seeding log is_movement behavior to assign their location. They just have one movement. And that’s OK. :slight_smile:

Yes, that is one way of thinking about it, but as you said: you are not moving ALL the seed.

So a better way to think about it is: you are “using up” the seed to create a plant asset. And you are moving that plant asset to the field.

(As an aside: if you were planting into plug trays first, you would be moving the plant asset to a greenhouse first perhaps, and then moving them again to the field as transplants. Or, if you sell starts/potted plants then they may move multiple times.)

Outside of the context of farmOS, these words all sort of mean the same thing. But inside farmOS, it’s important to have these distinctions, so that everything works correctly. You discovered that if you “move” the seed asset you run into two issues: it changes the location of the seed asset, which you don’t want, and it doesn’t handle the fact that you still have more seed left over. So, by thinking of it differently, leaving the seed where it is, decrementing its inventory, and moving the new plant asset, you can resolve both of those issues and have a “current location” of both your seed and plant assets that are accurate. And seed inventory too!

Hope that all makes sense. This would be a good candidate for a core convention, IMO. I might write one up to provide as reference in the future.


Your bullet points help. I was entering the seed as a parent for the plant asset currently. This ties the two together through my chain of record entries. I have been putting the seed asset and plant asset into the seeding log. This allowed me to pull up the seed asset record and click its log entries button to get a view of all seeding activities associated with that seed. It also provides a direct backwards trace because the seed asset is directly referenced on the seeding activity. Without the seed asset on seeding activity, you have to trace back through the plant asset reference of the parent seed to figure out the seed used. The seed asset is a step removed from the activity that actually is using it. While i guess it does work, This breadcrumb trail is a bit circuitous when trying to show it to an organic inspector whaile they are looking over your shoulder. I get the situation where people sell and move seedling plants around. It would still be easier to not have the system default to all of seed asset moving together. Even in a market farm case, a lot of seed would not necessarily get used all at once.
I think a clean list of seeding activities associated with the seed asset is useful. Im not seeing a path to get there as I try filters and the other list screens.

1 Like

If you’re modeling the seed as the parent of the planting, then you can pull up the seed asset and click it’s “children” tab to get a view of all the plantings that are children of that seed.

If you model the seed usage as inventory changes, then you also access the seeding events from the “inventory” tab of the seed asset.

1 Like

Yea I see why you would want to do that, to make it easier to get to the record, but I think that it is ultimately at the expense of the data model longer term. It creates ambiguity because you’re basically saying that you are moving two assets, when in fact you are only moving one (the plant asset). That leads to the obvious issue of your seed asset’s “current location” being wrong, and changing multiple times if you create multiple plant assets off of it. So rather than solving the “data navigation” problem by referencing both, it would be better to solve that issue specifically in another way. Perhaps there’s a shortcut we could add somewhere?

Yea definitely agree it’s cumbersome. But we should probably think of an “interface” shortcut instead of a “data model” shortcut, if that makes sense.

This is a great way to frame it. We need a way to easily show seeding logs of a seed asset!

This could be a list of seeding logs that reference plant assets that are children of the seed asset, perhaps. But that would then assume that convention is always used. Maybe we will need to encourage/enforce that more strictly in order to support this feature. :thinking:

What do you think about something like that @Symbioquine?

Hmmm, I’m not sure. At some level I like that the current relationships are explicit in the existing tabs.

  • If you use inventory adjustments for seedings, then you look at the inventory tab of the seed.
  • If you use parent-child seed/plant relationships, then you look at the children tab of the seed.