This content is also available at learn.palantir.com ↗ and is presented here for accessibility purposes.
You are working for a manufacturing company called Odyssey. Odyssey has different manufacturing plants around the world that produce electronics units. Due to global supply chain disruptions and sudden changes in demand, it has become important for the company to understand how well-equipped they are at delivering electronics units to their clients at any given moment. In other words, they want to understand their readiness.
Odyssey uses the terms Units, Parts, Assemblies, and Components to describe their production:
The diagram below illustrates the relationships. Part Blue is an assembly part consisting of 2 components parts Green and 1 component part Yellow. You can think of the part as a blueprint for the units. On the right-hand side, you are shown 3 assembly units of part Blue. Each of them consist of 3 component units; 2 of part Green and 1 of part Yellow.
To determine a plant’s readiness, the plant manager wants a simple workflow where they can input two targets: Low Target and High Target. These numbers specify, respectively, the minimum number and the preferred number of Assembly units the plant should be able to deliver for each part. The Readiness Count of a given part from a given plant is the number of units of that part type that can currently be delivered. For Component units, it’s the available unit count. For Assemblies, it must be calculated based on the sum of:
The Readiness Status of the part is determined by the Readiness Count based on the targets:
Based on the two input targets, the manager would like to see the readiness status of each part for the plant.
Your task is to build a pipeline which calculates the readiness count and readiness status of each part based on the input targets. The circled part of the below diagram represents the main deliverables of the project.
The following raw datasets are available from Odyssey’s source systems: Part, PartInventory, PartMapping, Plant. You will have to explore the data to understand how it fits together, but the following info might be useful:
The pipeline should take as input:
To allow Plant Managers input data manually, refer to the manual data entry functionality in Pipeline Builder. Your manual entry table should consist of the following 3 columns:
To test your implementation, fill in the first row of your manual entry table with initial values:
Your table should look like the example below:
The pipeline should output datasets that can back Ontology object types. Each dataset must include columns that can be the object types’ Primary Key (PK) and Title properties. The 3 object types you must support are:
The datasets need to be linkable as objects. Your output must enable such a link, either with a 1-1 foreign key, a 1-many foreign key, or a many-many join dataset, depending on the relationship between the datasets.
Let’s look at the part ABC-720-CB050940:
One unit is built from 2 units of part ABC-000064 REV 00C-x and 1 unit of part ABC-000080 Rev 00A-x.
The available unit counts of each involved part are:
The most units of part ABC-720-CB050940 that can be built from existing components is 813, as we’re limited by the number of ABC-000080 Rev 00A-x units. The readiness count for ABC-720-CB050940 is therefore 9 + 813 = 822 units.
If the low target is 10 and the high target is 50, this part would have readiness status At High Target.