data-dictionary

FPSBASE.WIP_STEP_HIST_PLUS

Data Dictionary

>

FPSBASE Views

> FPSBASE.WIP_WAFER_HIST_LOOP

View FPSBASE.WIP_STEP_HIST_PLUS

This view provides all of the information we know about every move for the current shift. It will be used as a base for all moves information on the Dashboard as well as every other application where we need lot information. We did some speed testing and it proved to be more efficient to combine all columns in this big refreshed table rather than joining (for example, including plan_priority_display here rather than joining on WIP_PRIORITIES later). The added information here is similar to WIP_REF_LOTS_PLUS. In DWH-2056 we write step_xxx_sec as well as prev_qty, is_rework_move, and is_finish_event by the WSH_INSERT_BEF trigger. It is critical for any query using these columns that these columns have been populated. In the upgrade script with DWH-2056 we populate the last 35 days and then inside CTM_FINISHED_LOT_HIST_CUSTOM we populate any older record for the lot. This should be sufficient for normal use however if you are doing research on old data then you might need to update manually. To do that, update wip_step_hist set step_sec_debug_note = 'Reset' where step_sec_debug_note is null and YOUR_CRITERIA = Y.

Column

Comment

INST

Time when the event occurred. (* inherited from FPSINPUT.WIP_EVENT_HIST)

LOT

A lot is a group of units that process together. Usually lot_id or lot_number in MES. All units in a lot are in the same carrier but there may be multiple lots in a carrier. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

LOT_SEQ_WITHIN_SEC

For rows with identical timestamps, sequence records to get proper sequence (* inherited from FPSINPUT.WIP_EVENT_HIST)

STEP_ENT_INST

Time when the lot entered the step. (* inherited from FPSBASE.WIP_LOT_HIST)

EVENT

This is the event registered in the MES. This is for the historical record and display only. Each event is mapped to an FPS event_type and the event_type is what is used by FPS applications. (* inherited from FPSINPUT.WIP_EVENTS)

EVENT_TYPE

Event Type (* inherited from FPSINPUT.EQP_SCHED_EVENTS_MANUAL)

MOVE_TYPE

Move_type is populated with a value in WIP_MOVE_TYPES (COMP, ISKIP, etc.) for all records where is_next = Y. It is null when the qty changes but is_next = N and these "delta only" records will always have a delta_type. Note that it is possible and not unusual to have both move_type and delta_type when the lot both moves and changes qty with the same event. (* inherited from FPSBASE.WIP_STEP_HIST)

MOVE_TYPE_W_CODE

DELTA_TYPE

Delta_type is the reason why the qty changed. It is populated with a value in WIP_DELTA_TYPES (SCRAP, SPLIT, etc.) for all records where qty_delta != 0. It is null for normal moves where is_next = Y and the qty does not change. The logic to populate this is in WIP_STEP_HIST_INSERT_BEF. (* inherited from FPSADMIN.WIP_DELTA_TYPES)

STEP

A single processing step within a route representing a single tool visit. Step is often a very complex string and should rarely be displayed. Instead we should use process_display. (* inherited from FPSINPUT.RTG_ROUTE_STEPS)

ABORT_INST

When a lot has begun processing on a tool and an event with event_type of ABORT is logged, abort_inst captures the time of the abort. If multiple aborts happen to the same lot, the last abort_inst is used. See description of ABORT ect_state for more details. (* inherited from FPSBASE.WIP_STEP_HIST)

ACTUAL_CH_USED

Here is where we can log the actual_ch_used directly if we know it. We have three ways to determine actual_ch_used in WIP_LOTS_REALTIME which populates WIP_STEP_HIST: 1) Log it directly in this colum for an event where the logged_entity is the main tool. 2) Log events to each of the chambers used in WIP_EVENT_HIST. 3) Log events to each of the chambers used in WIP_WAFER_HIST. (* inherited from FPSINPUT.WIP_EVENT_HIST)

ACTUAL_DURABLE_USED

Actual durable used as logged by the tool during processing of the lot. This can be a comma delimited string if multiple durables are used. (* inherited from FPSINPUT.WIP_EVENT_HIST)

ACTUAL_MACHINE_RECIPE

Machine recipe used to process the lot as logged during processing by the tool. (* inherited from FPSINPUT.WIP_EVENT_HIST)

BANK

Lots which are not on a route are considered in a bank and the bank name indicates why the lot is off route. Bank must be NA for lots which are on a route. Our standard filter for active lots is bank = NA. (* inherited from FPSINPUT.RTG_BANKS)

BANK_IN_OR_OUT_INST

BEG_PROC_INST

time when the lot started processing on the main tool. (* inherited from FPSINPUT.WIP_STEP_HIST_MANUAL)

BEG_PROC_ORDERED_NOT_NULL

BUILDING

Building is the top of our MHS hierarchy at each site. It is independent of facility which is at the top of our EQP/RTG hierarchy. It is possible for a building to include multiple facilities and for a facility to include multiple buildings but we do not even need to define these relationships because EQP_TOOLS determines this by the combination of the facility and bay columns (since bay points to building). (* inherited from FPSINPUT.MHS_BUILDINGS)

BUNCH_ID

Chain lots together for Goal Planner (* inherited from FPSINPUT.WIP_LOTS_STATIC)

CANCEL_INST

Time when tool reservation or dispatch or perhaps even load or ready for the lot at the current step was cancelled. After cancel_inst the lot is available to any qualified tool immediately. (* inherited from FPSBASE.WIP_STEP_HIST)

CARRIER

RFID of the cassette or FOUP the lot is currently in. (* inherited from FPSINPUT.MHS_CARRIERS)

CARRIERS_IN_JOB

Set to the number of carriers in the job. The value in WIP_EVENT_HIST represents the number of carriers which have started processing in this job *so far*, while the value in WIP_STEP_HIST (written after the job completes processing) represents the total number of carriers in the job. (* inherited from FPSBASE.WIP_LOT_HIST)

CARRIER_INST

When the carrier was last populated with the event. Since we carry over the previous value of carrier we need to know this to compare to the updated_inst in WIP_LOTS_STATIC and use the newest information for carrier. (* inherited from FPSBASE.WIP_LOT_HIST)

COMMON_STEP

A display-friendly field that groups similar steps together for purposes of viewing the entire line. Typically the only duplicates within a single route will be optional ordered steps in the same segment. But we will often have steps across routes that share the same common step even though exact step definition is not identical. (* inherited from FPSINPUT.RTG_COMMON_STEPS)

COST_PER_LOT

CREATED_INST

Time when the lot was created, either lot start or split. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

CURR_PRIORITY

The priority at the current step. As the lot moves along the route after LAST_STEP_CURR_PRTY it will revert to PLAN_PRIORITY. For example, timelink or sendahead priority is only temporary. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

CURR_PRIORITY_BG_COLOR

CURR_PRIORITY_DISPLAY

CURR_PRIORITY_REASON

An optional description of why the priority is set as it is. This is typically shown as additional information on pages related to priority lots. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

CURR_PRIORITY_SORT

CURR_RANK

Current rank is dynamically calculated based on the permanent rank, temporary rank, external rank, and current conditions like tool status and current setup. Cases when it is greater than permanent rank include when the required setup does not match or when APC thread is not qualified. The only way it could be less are when either the temporary rank or external rank are set. Curr_rank is populated in WIP_EVENT_HIST for each event logged to a tool by trigger with the value from WIP_STEP_FUT_ASSIGNMENTS at the time of the event. (* inherited from FPSBASE.WIP_LOT_HIST)

CUSTOMER

Customer who will accept shipment of the lot. Currently this only used for grouping and filtering but in the future we might want to allow a customer to view a Dashboard only including their products. (* inherited from FPSINPUT.GEN_CUSTOMERS)

DISPATCHED_BY

DISPATCH_INST

Time when the lot indicated in the MES that it will process on the tool. As opposed to reserve, dispatch cannot be automatically undone. (* inherited from FPSBASE.WIP_STEP_HIST)

DISPATCH_ORDERED_NOT_NULL

DUE_INST

To indicate the due date for this futuer start lot (* inherited from FPSINPUT.WIP_STARTS)

DURABLE_THP_VARIATION

When this column is populated that means that we have a choice of durable families and that processing time for the lot/recipe depends on which durable family is chosen. The most common use case is 8 pin and 16 pin probe cards. This will be blank for reticles and other cases where the throughput is not dependent on the durable. This is part of the primary key of our throughput logic where nulls are filled in as NA since PK columns cannot be null. In our first example, we have a recipe WAFER_TEST_1 that we use for a whole bunch of different prds. Each prd requires its own probe card but for throughput purposes we do not care about the prd. We just care about the recipe which is WAFER_TEST_1 and we would set duration_thp_variation to 8pin or 16pin. Then we would group all prds that use WAFER_TEST_1 and ran with an 8 pin probe card together in the same THP record. Our second example is similar to the first but for throughput purposes each prd will be different. We would set duration_thp_variation to the durable family for this case. In our third example, the recipe is different for each prd. In this case, we would set duration_thp_variation to either 8pin and 16pin or to the durable family and get the same result. (* inherited from FPSINPUT.RTG_DURABLE_FAMILIES)

EET_SEC

End-to-end time in seconds (* inherited from FPSBASE.WIP_LOT_HIST)

END_PROC_INST

time when the lot finished processing on the main tool. (* inherited from FPSINPUT.WIP_STEP_HIST_MANUAL)

END_PROC_ORDERED_NOT_NULL

ENGR_COMMENT

Special comments made by engineering about this lot. These comments are about the lot in general and not about a specific step. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

EQP_MODULE

EQP_MODULE is the module responsible for operating the tool. See comments on the module column in GEN_MODULES for info on this column and how it relates to eqp_module and mnt_module. (* inherited from FPSBASE.EQP_TOOLS_PLUS)

EQP_PROCESS_FAMILY

EQP_TYPE

Each tool is assigned an EQP_TYPE and all tools in the same type are identical meaning that they should run at the same throughput when running the same process with the same chamber type count. We also expect similar availability since these tools are identical. However tools in the same EQP_TYPE may have different chamber configurations and may run different groups of processes. (* inherited from FPSINPUT.EQP_TYPES)

EST_CH_USED

Estimate of which chambers will used to process this lot based on assignments and status (* inherited from FPSBASE.WIP_LOT_HIST)

EST_DURABLE_USED

This field is populated with our estimate of what durable will be used based on information from the MES and/or Recipe Management System combined with the location and status of each durable. (* inherited from FPSBASE.WIP_LOT_HIST)

EST_MACHINE_RECIPE

Estimated machine recipe what we estimate will be the machine recipe based on information from the Recipe Management System. It is used in combination with process for throughput calculations and setup change penalty calculations. It is not necessary to estimate for all processes since this is always used in combination however it needs to be NA rather than blank since it is part of the primary key of most THP tables. Hopefully when this is not NA it should match the actual machine recipe logged for each lot during processing. (* inherited from FPSINPUT.RTG_TOOL_ASSIGNMENTS)

EVENT_COMMENT

Comment associated with the event. (* inherited from FPSINPUT.WIP_HOLD_FUTURE)

EXPT_ID

Experiment identifier which indicates the lot will process differently that normal for its product on at least one step of the route. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

EXPT_INSTRUCTIONS

General instructions about the experiment performed on this lot. This is a long string field for display only. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

EXPT_VARIATION

Assigned to sibling lots to indicate which variation of the experiment will be performed on the lot. For example, variation 0 might get the normal recipe while variation 1 might get a different recipe then we can compare the different wafers in each split at a following measurement or test step. (* inherited from FPSINPUT.RTG_TOOL_ASSIGNMENTS_LOT)

FACILITY

Facility is included in almost every join in the DWH so this represents a definitive split. A route must have all steps on tools in the same facility. A tool must process all lots in the same facility. If your site has multiple buildings where lots run on routes using tools in multiple buildings then everything should be one facility. For example, multiple Fab buildings. But if your site has independent facilities like Fab and Test and Assembly where lot may progress from one to the next but on different routes then these should be different facilities. Since this column is in virtually every table it is critical that the value here is exactly matches what is in the MES if the MES has facility. Use facility_display for the display friendly name displayed in applications. See site_name comment for client/site/facility example. (* inherited from FPSINPUT.GEN_FACILITIES)

FACILITY_ENT_INST

FACILITY_SEGMENT

Facility segment is the parent of common step and is used as the highest level grouping when we show WIP for a route group or the entire facility where we cannot use route segment. We would prefer somewhere between 8 and 20 facility segments. Typically we will have to define these (as opposed to route_segment which we will typically come from the MES). There is no RTG_FACILITY_SEGMENTS table because sorting of facility segments is determined by common_step_sort. A trigger on RTG_COMMON_STEPS ensures that facility segments are contiguous when the entire facility is sorted by common step. (* inherited from FPSINPUT.RTG_COMMON_STEPS)

FACILITY_SEGMENT_ENT_INST

FIRST_LOT_IN_JOB

The first lot in the job determined by the order of events. When this first lot logs the first tool event which is usually a reserve or dispatch then the job_id is created with only this lot. Then subsequent lots join this job. While we use job_id to identify lots that will process or are processing or processed together, first_lot_in_job is still a useful field. (* inherited from FPSBASE.WIP_LOT_HIST)

FIRST_UNIT_SEC

Time for one unit to process when the tool starts from a standby state. On a batch tool -- defined as a tool where all units process together and take the same time regardless of qty -- this is the time for the batch. See our complete throughput documentation for more details. (* inherited from FPSINPUT.THP_EXTERNAL)

FIRST_WFR_BEG_INST

Time when the first wafer of the job started processing. (* inherited from FPSBASE.WIP_STEP_HIST)

FIRST_WFR_END_INST

Time when the first wafer of the job finished processing. (* inherited from FPSBASE.WIP_STEP_HIST)

GBL_SORT

Sorting used for dispatching or allocation systems to sort future start lots based on priority, critical ratio, etc. (* inherited from FPSINPUT.WIP_STARTS)

GOAL_BEGIN_INST

Time when the lot has to complete the current step to remain on schedule. (* inherited from FPSBASE.WIP_STEP_HIST)

INSERTED_TIME

Timestamp field set by trigger storing SYSTIMESTAMP when record was inserted in the table. (* inherited from FPSINPUT.WIP_EVENT_HIST)

INTERVAL_SEC

Unit_int_sec or batch_int_sec expected for the lot at the time of processing from our THP tables. (* inherited from FPSBASE.WIP_LOT_HIST)

IS_ALREADY_COMP_THIS_OPER

IS_AUTO

This field shows if the port mode is set to automatically deliver material. If the facility either has automated delivery (aka 300mm) or is using semi-automated delivery (aka NextMove) then a port set to a port_mode where this is N but is_up is Y is considered manual. A manual port means that the delivery system cannot use this port. If all ports are manual then rank will be M (Ports Manual) and ETP will set the state to SBY-RANKM (Standby With All Ports in Manual). In addition, we report auto_pct by summarizing the port states in auto and manual. (* inherited from FPSINPUT.EQP_PORT_MODES)

IS_COUNT_PRIORITY_PCT

This flag determines which priorities to include in our overall percentage of priority lots in the Dashboard spotlight. This is similar to is_highlighted_prty but it is possible that we might want to highlight a priority but not include it in the percentage. (* inherited from FPSINPUT.WIP_PRIORITIES)

IS_CURR_PRTY_HIGHLIGHTED

IS_DELETE_EVENT

If the event results in this lot being deleted then logic in the trigger will set this to Y. This flag indicates that we should delete this lot from WIP_EVENTS_CURR_STEP and WIP_STEP_FUTURE in via subsequent triggers. There are two correct ways to delete a lot. One is to log an event with the qty set to 0 (i.e. merge or scrap or terminate). Two is to log an event where next_facility is set to a facility which is not in GEN_FACILITIES (i.e. ship). Then there is case three where the lot disappears from WIP_LOTS_VERIFY with no event designating this. Case three means the ETL needs to be improved to log the proper event so it becomes case one or two. (* inherited from FPSBASE.WIP_LOT_HIST)

IS_EVENT_AUTO

IS_EXPT_STEP

Flag set to Y if the experiment requires abnormal processing at this step. (* inherited from FPSBASE.WIP_LOT_HIST)

IS_FACILITY_SEGMENT_MOVE

IS_FINISH_EVENT

IS_HOLD

This field indicates the lot is on hold after the event is logged. In other words, this will always be Y if is_hold_start is Y and always N if is_hold_end is Y. (* inherited from FPSINPUT.WIP_EVENT_HIST)

IS_IGNORE_MOVABLE_TURNS

Movable turns differs from our standard turns calculation in that we ignore steps where lots are not expected to move like staging steps or logistics steps. Like is_ignore_turns, this flag can be set in either RTG_OPERATION_FAMILIES, RTG_PROCESSES, or RTG_LINE_SECTIONS. (* inherited from FPSINPUT.RTG_OPERATION_FAMILIES)

IS_IGNORE_MOVES

This flag is in both RTG_OPERATION_FAMILIES and RTG_PROCESSES. If the value is Y for the operation family then we do not count moves from those operations as oper moves. If the value is Y for either the operation family or the process then we do not count moves from the route-step as completes even if our normal logic suggests that it should be a complete. This logic can cause confusion so here are a few important notes. 1) Dashboard does not read the is_ignore_moves flag therefore we must set move_type to DSKIP rather than COMP and we must set is_oper_move to N in order to ignore the move. 2) This flag is often used for staging steps but it is independent of the is_staging_step flag so if you want to ignore staging steps then you need to set these flags appropriately. 3) The flag in RTG_PROCESSES does not directly affect the oper moves but it does affect it indirectly if the is_comp_rqd_for_oper_move is set to Y. In that case, if the only move during the operation is for a process which is ignored then we do not have a complete during the operation and therefore will not count the move from the operation as an oper move since a complete is required. (* inherited from FPSINPUT.RTG_OPERATION_FAMILIES)

IS_IGNORE_TURNS

This flag is in RTG_OPERATION_FAMILIES, RTG_PROCESSES, and RTG_LINE_SECTIONS. If this flag is Y in any of the three tables then we do not count turns at the route-step towards the total for the facility. We also ignore turns at route-steps where we ignore WIP and/or moves which makes sense since turns is moves divided by WIP. Finally we ignore turns for certain line sections towards the facility average. (* inherited from FPSINPUT.RTG_OPERATION_FAMILIES)

IS_IGNORE_WIP

This flag is in both RTG_OPERATION_FAMILIES and RTG_PROCESSES. If the value is Y for either the operation family or the process then we do not count WIP at the route-step towards the total for the facility. Typically this is set for staging operations. (* inherited from FPSINPUT.RTG_OPERATION_FAMILIES)

IS_INACTIVE_STEP

Since we now use RTG_ROUTE_STEPS_INACTIVE table, we should only include the active steps on each route in RTG_ROUTE_STEPS. Therefore this value must be set to N in the RTG_ROUTE_STEPS table but will be set appropriately to Y for inactive steps in the RTG_ROUTE_STEPS_PLUS table. (* inherited from FPSINPUT.RTG_ROUTE_STEPS)

IS_JUMP_NOT_LAST

IS_MOVE

IS_NEXT

Indicates record goes into WIP_STEP_HIST (* inherited from FPSBASE.WIP_LOT_HIST)

IS_NONSTD

Our column to indicate non-standard processing at the step. For example, an experiment or a chain that is only active at a particular step or set of steps and then goes back to being normal for the route. If an experiment is severe enough that it affects the final product and has to be planned separately then it will be its own prd or planprd. (* inherited from FPSBASE.WIP_LOT_HIST)

IS_OPER_MOVE

The critical Dashboard metric we call oper moves is moves according to the specific definition of the site, usually the moves calculation they used prior to installation of the FPS Dashboard. If Y then this step move meets the specific criteria for the site to be counted as an oper move. (* inherited from FPSBASE.WIP_STEP_HIST)

IS_PLAN_PRTY_HIGHLIGHTED

IS_REPEAT_CURR_DAY

IS_REPEAT_CURR_SHIFT

IS_REWORK_END

Event ended rework (* inherited from FPSINPUT.WIP_EVENT_HIST)

IS_REWORK_MOVE

IS_REWORK_START

Event started rework (* inherited from FPSINPUT.WIP_EVENT_HIST)

IS_REWORK_STEP

IS_ROUTE_SEGMENT_MOVE

IS_SCHED

This flag indicates that lots in this group should be scheduled. This flag additionally causes TW groups to be included in WIP_STEP_FUTURE which they are normally not. (* inherited from FPSINPUT.WIP_LOT_GROUPS)

IS_SCRAP

IS_SCRAP_EVENT

If the event results in any number of units in the lot to be scrapped then this field is set to Y. It is common to have scrap occur not only from a scrap event but also from a move event where the lot loses some but not all units. Therefore we cannot just look at scrap events and this flag tells what to count as scrap for this particular facility. (* inherited from FPSINPUT.WIP_EVENT_HIST)

IS_SHIP_EVENT

This flag tells us what to count as a ship for a particular facility. Related to the ship event is the finish event which is the last event for a facility-prd which either changes facility or changes prd or terminates the lot by changing the qty to 0 without merging. Often the ship event is the same event as the finish event. But when the ship event is different and logged prior to the finish event, we write a record to CTM_FINISHED_LOT_HIST when the ship event is logged with finish_inst blank. This record is include in Dashboard Ships Summary but not in Finished Lot Cycle Time. Then later when the lot finishes, we update the record keeping the ship_inst and populating the finish_inst so it is then including in Finished Lot Cycle Time. Technically this "insert at ship then update at finish" process is the same regardless of how far the ship is before the finish but it is most critical when the the ship is quite some time before the finish, for example, when wafer test is part of the same route but we want to count the ship when the lot finishes the fab steps. (* inherited from FPSINPUT.WIP_EVENT_HIST)

IS_STAGING_STEP

We expect large amounts of WIP and long cycle times at staging steps. We still calculate cycle time like any other step but the important difference is that lots currently at a staging step are not counted as normal coming lots to future steps. Instead we show them in a special column labeled From Staging. (* inherited from FPSINPUT.RTG_ROUTE_STEPS)

IS_TW

Our standard filter to exclude test wafers is is_tw = N but what we really mean with this filter is to exclude any lots that do not add value for the facility. Lots which add value including sellable, development, and engineering and these lot groups should have is_tw set to N. Lots which do not add value are commonly grouped together and named "test wafers" which is why this flag is named is_tw. These include true test wafers like monitors and quals and dummies but also could include virtual lots used for training or testing, bare wafers, or really anything else including in the MES as a lot which does not add value. All of these lot groups should have is_tw set to Y. You could argue that the is_tw field might be more accurately named is_value or is_valuable or is_prod_eng_dev but is_tw is generally clear to most people. Plus it has the advantage that it is short which is nice given how frequently we use the is_tw = N filter. (* inherited from FPSINPUT.WIP_LOT_GROUPS)

JOB_ID

Automatically set by trigger when the first lot of a job logs an event to the tool. (* inherited from FPSBASE.WIP_LOT_HIST)

LAST_PROCESS_TOOL

For rework and scrap events we automatically look up the last process tool for the lot. Process tool is determined by the process class of the tool and excludes metrology and support tools. It is likely this was the cause of the rework or scrap although by no means certain. (* inherited from FPSBASE.WIP_LOT_HIST)

LAST_PROCESS_TOOL_BEG_INST

Time when the lot finished processing on the previous tool (excluding metrology). (* inherited from FPSBASE.WIP_LOT_HIST)

LAST_RELEASE_INST

Time the lot was previously released from hold. (* inherited from FPSBASE.WIP_STEP_HIST)

LAST_STEP_CURR_PRTY

The last step where the current lot_priority applies. After this step we assume the lot will return to its plan_priority. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

LAST_TOOL

For rework and scrap events we automatically look up the last tool where the lot processed including metrology tools. (* inherited from FPSBASE.WIP_LOT_HIST)

LAST_TOOL_BEG_INST

Time of the last event on the previous tool (including metrology) for the lot occurred. (* inherited from FPSBASE.WIP_LOT_HIST)

LAST_WFR_BEG_INST

Time when the last wafer of the job started processing. (* inherited from FPSBASE.WIP_STEP_HIST)

LAST_WFR_END_INST

Time when the last wafer of the job finished processing. (* inherited from FPSBASE.WIP_STEP_HIST)

LINE_SECTION

Large grouping of the line, e.g. FEOL, BEOL, Cu, etc. There should be only a handful of values for the entire facility - or if the facility only has one section then we can leave this column blank. (* inherited from FPSINPUT.RTG_LINE_SECTIONS)

LOCATION

Location of a carrier or lot or durable which comes directly from the tracking system used at the site. This could be a port or internal tool location or tool or rack or stocker or zero footprint storage or room or really anywhere. Many non-automated sites allow users to manually enter locations into their system. Therefore unless we know for sure that the source data implements a size limitation, it is recommended to always trim the value in the ETL to 32 characters to fit into the column size and avoid load errors. For ports, location is the full name of the port which is unique across the entire site and usually includes the tool name. Please see the comment in the port column which explains the difference between location and port. Rack locations are similar. (* inherited from FPSINPUT.MHS_RACK_LOCATIONS)

LOGGED_ENT_OF_STEP_EVENT

LOGICAL_RECIPE

Used for infomational purpose and is populated if known otherwise it will match the recipe. (* inherited from FPSINPUT.WIP_EVENT_HIST)

LOTS_IN_JOB

Set to the number of lots in the job. The value in WIP_EVENT_HIST represents the number of lots which have started processing in this job *so far*, while the value in WIP_STEP_HIST (written after the job completes processing) represents the total number of lots in the job. (* inherited from FPSBASE.WIP_LOT_HIST)

LOT_FAMILY

Lot_family is a grouping of lot_type which is mainly use for goal planning. We set goals by family and are allowed to switch goals for different lots of different types within the family. We also report goal performance by family. (* inherited from FPSINPUT.WIP_LOT_FAMILIES)

LOT_GROUP

Lot_group is a grouping of lot_family and is the highest grouping in the lot type hierarchy. There should be only a few values for lot_group, i.e. Prod, Dev, TW. We group WIP and moves by lot_group on the dashboard and we group cycle time calculations by lot_group so this is an important field. (* inherited from FPSINPUT.WIP_LOT_GROUPS)

LOT_PRIORITY

LOT_SUBTYPE

This is an optional field to add a level to lot_type. This field is not used in logic but is displayed on hold and scrap pages of Dashboard. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

LOT_TYPE

Lot_type is the base of the hierarchy that determines lot_family then lot_group. Ideally lot_type will come straight from the MES with little modification. (* inherited from FPSINPUT.WIP_LOT_TYPES)

LOT_TYPE_SORT_ORDER

MADE_CASCADE

MAIN_ROUTE

Primary route used by the prd. Excludes rework and alternate routing. We allow this column to be null in WIP_LOTS_VERIFY because we may not be certain what the main route is when we fix for missed events. In that event we trust the WIP_EVENT_HIST triggers has loaded the correct information into WIP_EVENTS_CURR_STEP. (* inherited from FPSINPUT.WIP_EVENT_HIST)

MAIN_ROUTE_FAMILY

Route family of the main route for the prd of the lot. (* inherited from FPSINPUT.WIP_OVR_OPER_MOVES_HIST)

MAIN_ROUTE_GROUP

Route group of main route. Often referred to as technology. (* inherited from FPSBASE.WIP_FLUSH)

MAIN_RT_COMMON_STEP

MAIN_RT_SEQ_NUM

MAIN_RT_STEP

When lot is on a rework or alternate route, this is the step where it will return to the main route. We use this for planning purposes so we can calculate remaining steps. We allow this column to be null in WIP_LOTS_VERIFY because we may not be certain what the main route step is when we fix for missed events. In that event we trust the WIP_EVENT_HIST triggers has loaded the correct information into WIP_EVENTS_CURR_STEP. (* inherited from FPSINPUT.WIP_EVENT_HIST)

MAX_QTY_PER_CARR

Maximum number of wafers in a carrier - also known as maximum lot size - which is typically 25 for a wafer fab. (* inherited from FPSINPUT.GEN_FACILITIES)

MEAS_RESULT

Result of measurement. For facilities not using FPS Sampling this value is for display purposes only and can be pass/fail or a number or anything. For facilities using FPS Sampling this field is used to dynamically adjust the sampling rules and must be a letter grade A-F. (* inherited from FPSINPUT.WIP_EVENT_HIST)

MERGE_INTO_PRD

This is the prd of the lot into which this lot is merged if that prd is different than the prd of this lot. Typically this is an assembly step. This is important to track the prd flow from individual components into the final shipped prd. (* inherited from FPSINPUT.WIP_EVENT_HIST)

MERGE_LOT_LIST

Lot (or list of lots) merged with this lot by this merge event. A value here indicates this was a merge event. (* inherited from FPSINPUT.WIP_EVENT_HIST)

MNT_FAMILY

MNT_FAMILY is assigned to each EQP_TYPE. Tools in the same MNT_FAMILY are similar and share the same maintenance schedule. (* inherited from FPSINPUT.EQP_MNT_FAMILIES)

MPU

MPU is a commonly used abbreviation which stands for minutes per unit. It is often referred to as MPW which for minutes per wafer but MPU is better because the unit is not always wafer. (* inherited from FPSBASE.WIP_LOT_HIST)

NEXT_BANK

Event moved the lot to this new bank (* inherited from FPSINPUT.WIP_EVENT_HIST)

NEXT_FACILITY

Event moved the lot to this new facility (* inherited from FPSINPUT.WIP_EVENT_HIST)

NEXT_FACILITY_SEGMENT

NEXT_MAIN_ROUTE

Event moved the lot to this new main route (* inherited from FPSINPUT.WIP_EVENT_HIST)

MAIN_RT_OPER_ENT_INST

NEXT_MAIN_RT_STEP

Event moved the lot to this new step on the main route (* inherited from FPSINPUT.WIP_EVENT_HIST)

NEXT_OPERATION

Operation of the next_step used primarily to determine is_oper_move. Populated by trigger. (* inherited from FPSBASE.WIP_LOT_HIST)

NEXT_PLANPRD

If this event results in the planprd of the lot changing the new value is stored here. (* inherited from FPSINPUT.WIP_EVENT_HIST)

NEXT_PRD

Event moved the lot to this new prd (* inherited from FPSINPUT.WIP_EVENT_HIST)

NEXT_PROCESS

Process of the next step. Populated by trigger. (* inherited from FPSBASE.WIP_LOT_HIST)

NEXT_ROUTE

Event moved the lot to this new route (* inherited from FPSINPUT.WIP_EVENT_HIST)

NEXT_ROUTE_SEGMENT

NEXT_STEP

Event moved the lot to this new step (* inherited from FPSINPUT.WIP_EVENT_HIST)

NUM_DISCS_FOR_JOB

Number of discs used in the job as estimated by our throughput logic. (* inherited from FPSBASE.WIP_LOT_HIST)

NUM_SIBLING_LOTS

A count of other lots that were also split from the same parent. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

NUM_STEPS_JUMPED

Number of steps on route jumped by this move event. Each of these steps will have a JUMP event logged in WIP_STEP_HIST. (* inherited from FPSBASE.WIP_STEP_HIST)

NUM_STEPS_MOVED

The sequence number of the next step minus the sequence number of the previous step when moved on the same route. Importantly this is negative if the lot moves backwards. If this is greater than 1 then num_steps_jumped should be one less than this value but these are calculated differently so we record both and this is a reasonable check. (* inherited from FPSBASE.WIP_STEP_HIST)

NUM_WFRS_BEG

NUM_WFRS_ENDED

OPERATION

Operation is usually the primary level of routing in the MES and the level where the facility typically reports moves. FPS only allows one tool per step so our step is a lower level of routing than operation although both may be the same if the MES only allows one tool per operation. Note that because operation can include multiple steps and therefore multiple process families that we cannot have any association to equipment by operation. (* inherited from FPSINPUT.RTG_OPERATIONS)

OPERATION_DESCRIPTION

OPERATION_DISPLAY

All xxx_display columns are used in place of the column xxx for display purposes. The values of these columns can be changed at any time without having to worry about other tables referencing it. (* inherited from FPSINPUT.RTG_OPERATIONS)

OPERATION_FAMILY

Grouping of route-step that is completely dependent on routing information from MES. The primary use of this field is for filtering on Operations Dashboard. Unfortunately for our database structure and naming convention, this field no longer has any link to operation. This is because operation is used primarily for Oper Moves and it is normal for steps in an operation to belong to multiple MES routing groups. For example, a sink step and a furnace step and a measurement step are in the same operation but each step belongs to the appropriate sink/furnace/measurement MES routing groups which we store in operation family. Since Dashboard already uses both operation and operation_family extensively and independently, we decided not to rename either column but simply remove the link. Please note that operation family is similar to process family and in fact they are often the same. The key differences are that operation family has nothing to do with equipment and that comes straight from ETL with no complex logic. Process family is the link between routing and equipment for the Operations Dashboard and therefore has complex logic. (* inherited from FPSINPUT.RTG_OPERATION_FAMILIES)

OPERATION_MODULE

OPERATOR

In history tables, this is the username of the person or system who logged the event. In EQP_MNT_FUTURE, this is the username of the person who input the information about the maintenance event. Usernames can be looked up in GEN_USERS to get full names, email address, etc. Please note that the existence of each username in GEN_USERS is optional, meaning that it is never required for the username logged in the operator column to be in GEN_USERS. (* inherited from FPSINPUT.WIP_EVENT_HIST)

OPER_ENT_INST

ORDER_ID

The customer order to which this lot belongs. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

ORIG_DUE_INST

Original Due Date of this lot (* inherited from FPSINPUT.WIP_STARTS)

ORIG_PLAN_OUT_INST

Original plan out date for this lot in the current facility which was set for the lot at its creation or when it entered this facility. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

OVR_IS_QUEUE_ALLOWED

We stop lots from starting the first step in a queue timer when WIP is too high but this flag allows this specific lot to start despite this. Use for priority lots or sendahead lots or when we want to trickle lots into the timer. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

PARENT_LOT

The parent lot should ideally be the original parent but it could be the most recent parent if multiple splits have occurred. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

PAUSE_INST

When a lot has begun processing on a tool and an event with event_type of PAUSE is logged, pause_inst captures the time of the pause. If multiple pauses happen to the same lot, the last pause_inst is used. See description of PAUSE ect_state for more details. (* inherited from FPSBASE.WIP_STEP_HIST)

PERM_RANK

Permanent rank is typically loaded by ETL from a combination of the MES, recipe management system, and existing preference logic already used at the site. Possible values are in FPSADMIN.RTG_PERM_RANKS. (* inherited from FPSINPUT.RTG_TOOL_ASSIGNMENTS)

PLANPRD

Planning product used for all planning purposes. All lots with the same planprd are interchangeable to ship to the customer regardless of their prd, route, technology, wafer size, etc. For detailed information on prd vs. planprd see table comments in RTG_PLANPRDS. (* inherited from FPSINPUT.RTG_PLANPRDS)

PLAN_OUT_INST

Current planned out date for this lot in the current facility. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

PLAN_PRIORITY

Permanent priority of the lot set in the MES generally by planning. (* inherited from FPSINPUT.WIP_EVENT_HIST)

PLAN_PRIORITY_BG_COLOR

PLAN_PRIORITY_DISPLAY

PLAN_PRIORITY_SORT

PRD

Prd determines the route which is used to process the lot in the facility and what tools, recipes, durables, etc. can be used at each step. Prd also determines the next facility for the lot when it finishes its route. For detailed information on prd vs. planprd see table comments in RTG_PLANPRDS. (* inherited from FPSINPUT.RTG_PRDS)

PREV_END_PROC_INST

End_proc_inst of the previous job on the tool before the job including this lot. Subtracting this from the end_proc_inst of this job gives us the end-to-end time (EET) which is critical for throughput calculations. (* inherited from FPSBASE.WIP_LOT_HIST)

PREV_PROCESS

Process of the previous job on the tool before the job including this lot. Used in combination with prev_recipe to determine if this job cascaded and if it required a setup change. (* inherited from FPSBASE.WIP_LOT_HIST)

PREV_QTY

PREV_RECIPE

Recipe of the previous job on the tool before the job including this lot. Used in combination with prev_process to determine if this job cascaded and if it required a setup change. (* inherited from FPSBASE.WIP_LOT_HIST)

PREV_SEC_QTY

PROCESS

Process defines what occurs at a step. Different steps can share the same process if they are identical. Process should normally determine allowed tools and recipe although it can be overridden by step, route, prd, lot, and experiment for exceptions. Each process is dynamically assigned to one or more eqp_type-process_family combinations with use_pct. One process_family is determined to be primary. If grouping is done correctly, a process should only be one eqp_group with no crossover. (* inherited from FPSINPUT.RTG_PROCESSES)

PROCESS_CLASS

Top-level grouping of process groups with same general purpose (i.e. Process or Metrology or Nonwafer). Allowed values are defined by FPS and are listed in FPSADMIN.RTG_PROCESS_CLASSES. This field can also be defined in EQP_TOOLS using the ovr_process_class field if we do not know it for the process group. (* inherited from FPSINPUT.RTG_PROCESS_GROUPS)

PROCESS_DISPLAY

The name of the process displayed on all dashboards and reports. We allow a longer more descriptive name here although often this will be the same as the process. (* inherited from FPSINPUT.RTG_PROCESSES)

PROCESS_FAMILY

See https://help.inficonims.com/display/DW/Guide+to+Process+Families. (* inherited from FPSINPUT.RTG_PROCESS_FAMILIES)

PROCESS_GROUP

Process group is the critical field where tools and processes come together for the purposes of Scheduler. Process group is in both EQP_TOOLS for the tools and in RTG_PROCESSES for processes. Ideally all tools that run the same set of processes with no crossover including back-up and emergency tools would be in the same process group but it is important to note that this is not technically required for Scheduler as long as all process groups are in the same sched group. (* inherited from FPSINPUT.RTG_PROCESS_GROUPS)

PROCESS_MODULE

WIP_MODULE is used to credit moves and set goals. See comments on the module column in GEN_MODULES for info on this column and how it relates to eqp_module and mnt_module. (* inherited from FPSBASE.RTG_ROUTE_STEPS_PLUS)

PROCESS_MODULE_DISPLAY

PROCESS_SUBFAMILY

Route step family is used for the Dashboard to separate processes in a process family based on shared but limited assignments. It is also the base for GP subfamily. (* inherited from FPSBASE.RTG_ROUTE_STEPS_PLUS)

PROC_PORT

PROC_PORT_MODE

PRTY_CTM_GROUP

This is one of the primary keys of our CTM tables. We use this group rather than the priority because we often have several different priorities which are close and are expected to have the same cycle time. (* inherited from FPSINPUT.WIP_PRIORITIES)

QTY

Quantity of units in the lot according the qty_unit defined for the facility. It is required for all lots in each facility to have their qty defined in the same units therefore the change in the unit is critical to defining the facility. For example, a pretest facility might have a sort step in the middle where we learn the qty of die. Prior to this step we know only the wafer qty but after this step we know both wafer and die. Since wafer is the only qty we know throughput the flow then wafer must be defined as the qty unit for this facility. Die can then be populated as sec_qty when it is known. Similarly the wafer saw facility might have a step in the middle where we cut the wafers into die. After this step we no longer know the number of wafers which means that die must be the qty unit for this facility and wafers can be the sec_qty prior to the saw step. Please note that a lot with qty of 0 is allowed but only if the sec_qty is greater than 0. This is unusual but one case is where we know the wafers will be scrapped but cannot be scrapped quite yet. (* inherited from FPSINPUT.WIP_EVENT_HIST)

QTY_DELTA

Difference in number of wafers due to an event that changes lot quantity (* inherited from FPSINPUT.WIP_EVENT_HIST)

QTY_IN_JOB

The number of units in the job. For example a batch tool with 5 carriers each with a 25 wafer lot would have 125 in the job. This is also important for non-batch tools where we have multiple lots in a carrier as the job might include all lots or only selected lots. (* inherited from FPSBASE.WIP_LOT_HIST)

QTY_MEAS

Quantity of units measured at this metrology step. This is less than or equal to the qty_in_job. The standard case is where we have a 25 wafer lot so the qty_in_job is 25 but we only measure 3 wafers on the metrology tool so qty_meas is 3. (* inherited from FPSINPUT.WIP_EVENT_HIST)

QUEUE_STATUS

Display field showing the current status of this lot within a queue time sequence. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

READY_INST

Time when the lot was ready to be processed (e.g. after recipe downloaded). (* inherited from FPSBASE.WIP_STEP_HIST)

RECIPE_VERSION

This field is for historical tracking purposes only and is not used in any FPS calculation. (* inherited from FPSINPUT.WIP_EVENT_HIST)

RESERVE_INST

Time when the lot was reserved to the tool either by Scheduler or external or manual reservation. As opposed to dispatch, reserve is only in the FPS DWH and therefore can be automatically undone. (* inherited from FPSBASE.WIP_STEP_HIST)

RESERVE_SOURCE

RESERVE_TOOL

REVERSE_SEQ_NUM

RORP

The Capacity Model does its calculations by rorp which stands for "route or prd" although it could technically be something in between route and prd. This is controlled by the ovr_rorp column in FPSINPUT.RTG_PRDS. In FPSBASE.RTG_PRDS_PLUS, rorp is set to prd by default if ovr_rorp is null. Populating ovr_rorp in the ETL (with route, for example) will override the default and set rorp = ovr_rorp. (* inherited from FPSAPP.CM_P_RORP_STEP_EQPTYPES)

ROUTE

Route that has threading requirements (* inherited from FPSINPUT.RTG_STEP_THREADING)

ROUTE_SECTION

A large grouping of route steps used for line balance and should be set to contain at least a week of steps based on cycle time. Line balance uses this grouping instead of segment so that it can be configured independently from segment which is used in the Dashboard for display purposes, but they can also be set the same if desired. The section should be large in order to minimize the impact of short-term WIP distribution changes on step WIP targets because line balance calculates step WIP targets based on the WIP currently in each section. (* inherited from FPSINPUT.RTG_ROUTE_STEPS)

ROUTE_SEGMENT

Route_segment allows for clear hierarchical segment organization for Segment Summary and Line Viewer on Dashboard. This is often referred to as stage and typically will come from the MES (as opposed to facility_segment which we will typically have to define for our purposes). We recommend that all routes in the same route family have the same route segments in the same order so that the Line Viewer by route family will be consistent but if this is not the case then we approximate the order as best we can. (* inherited from FPSINPUT.RTG_ROUTE_STEPS)

ROUTE_SEGMENT_ENT_INST

RQD_SETUP

Rqd_setup is determined by ovr_rqd_setup in RTG_TOOL_ASSIGNMENTS and use_process_as_rqd_setup and use_est_mach_rcp_as_rqd_setup from EQP_TYPES. The latter two columns allow us to easily specify for an eqp_type that setup times should be calculated by process or est_machine_recipe. For traditional setups that are a group of recipes we use ovr_rqd_setup. (* inherited from FPSBASE.WIP_LOT_HIST)

RT_STEP_BANK_ENT_INST

If the lot is at a step then this is the time when it entered the current route-step. If the lot is at a bank then this is the time it entered the current bank. (* inherited from FPSBASE.WIP_LOTS_REALTIME)

SAH_CHAMBERS

Send ahead chambers (* inherited from FPSINPUT.WIP_LOTS_STATIC)

SAH_TOOL

Send ahead tool (* inherited from FPSINPUT.WIP_LOTS_STATIC)

SAH_TYPE

Send ahead type is primarily used to set lot_priority. We often want to prioritize a sendahead lot only to the metrology tool so we can get metrology as soon as possible and start processing more lots. (* inherited from FPSINPUT.WIP_SAH_TYPES)

SCRAP_CATEGORY

A optional categorization field for scrap events which can be defined for the facility. (* inherited from FPSINPUT.WIP_EVENT_HIST)

SCRAP_MODULE

Responsible module for the scrap event. (* inherited from FPSINPUT.WIP_EVENT_HIST)

SCRAP_MODULE_DISPLAY

SCRAP_OWNER

Engineer responsible for analyzing and recording this scrap event. (* inherited from FPSINPUT.WIP_EVENT_HIST)

SCRAP_PROCESS_FAMILY

SCRIPT_ID

This column references the name of script used to process lots at this step. Different MES use different terminology but the key to this column is its use to determine batches. Lots with the same script_id and same batch_criteria from RTG_TOOL_ASSIGNMENTS can be batched together. Therefore this is critical column for scheduling on batch tools. (* inherited from FPSINPUT.RTG_ROUTE_STEPS)

SEC_BEG_PROC_INST

Time when processing on secondary tool started. (* inherited from FPSBASE.WIP_STEP_HIST)

SEC_END_PROC_INST

Time when processing on secondary tool finished. (* inherited from FPSBASE.WIP_STEP_HIST)

SEC_QTY

Quantity of units in the lot according the sec_qty_unit defined for the facility. See the column comment for the qty column for details and examples. (* inherited from FPSINPUT.WIP_EVENT_HIST)

SEC_QTY_DELTA

Difference in number of die due to an event that changes lot quantity (* inherited from FPSINPUT.WIP_EVENT_HIST)

SEC_QTY_EST_TO_ACTUAL_DELTA

SEC_TOOL

SEQ_NUM

Sequence number of step in route (* inherited from FPSINPUT.RTG_ROUTE_STEPS)

SHOULD_AUTO_HIDE

If the flag is set to Y then the module will be hidden on the Dashboard even if it has active WIP or moves. (* inherited from FPSINPUT.GEN_MODULES)

SMP_REASON

Reason for sampling (* inherited from FPSINPUT.WIP_SMP_FUTURE)

SPLIT_LOT_LIST

Lot (or list of lots) split along with this lot by this merge event. A value here indicates this was a split event. (* inherited from FPSINPUT.WIP_EVENT_HIST)

STEP_BLOCK_SEC

STEP_DISP_SEC

STEP_DOWN_SEC

STEP_ENDED_SEC

STEP_FOR_LOT_INFO

STEP_HOLD_SEC

STEP_HOLD_SEC_CURR_DAY

STEP_HOLD_SEC_CURR_SHIFT

Time on hold at the current step during the current shift (* inherited from FPSBASE.WIP_STEP_HIST)

STEP_NUM_HOLDS

STEP_PROC_SEC

STEP_SEC_DEBUG_NOTE

STEP_SHUTD_SEC

STEP_TOTAL_SEC

STEP_WAIT_SEC

TCT_SEC

Theoretical cycle time in seconds (* inherited from FPSBASE.WIP_LOT_HIST)

THP_IGNORE_REASON

THP_IGNORE_REASON_WEH

TOOL

Tool is generally just the main tool. The exception is when different entities on the tool run completely independently and it is physically impossible to run wafers of the same lot across multiple entities. In this exception case, we may want to assign the entities to different eqp_types and therefore we should define each entity as a tool. Please note that when we do this there is no indication whatsoever that these different entities are on the same tool. (* inherited from FPSINPUT.EQP_TOOLS)

TW_BAD_QTY

Only applicable to TW lots. This is the number of test wafers in the lot which are considered BAD. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

TW_GOOD_QTY

Only applicable to TW lots. This is the number of test wafers in the lot which are considered GOOD. (* inherited from FPSINPUT.WIP_LOTS_STATIC)

TW_RECYCLE_COUNT

Only applicable to TW lots. This is the number of times the test wafers have been reused (* inherited from FPSINPUT.WIP_LOTS_STATIC)

WAFER_SIZE

If the facility only has one wafer size then this column should be null in both RTG_PRDS and EQP_TYPES. If the facility has more than one wafer size then a value of null in EQP_TYPES means that those tools can run all wafer sizes. See column IS_ANY_WAFER_SIZE for details. (* inherited from FPSINPUT.GEN_WAFER_SIZES)

WAFER_SIZE_DISPLAY

The name of the wafer_size displayed on all dashboards and reports. We allow a longer more descriptive name here although often this will be the same as the wafer_size. (* inherited from FPSINPUT.GEN_WAFER_SIZES)

WHY_NOT_OPER_MOVE