PacSimulate®
Working with PacSimulate
41 min
the goal of this document is that once provided data, anyone should be able to configure and run a simulation with pacsimulate core concepts to understand how paccurate constructs and executes simulations with pacsimulate, it is important to cover a few key terms and concepts at a high level, pacsimulate takes a collection of order data (items with dimensions and quantities), passes each order to our cartonization api, returns packing performance data for each order, and reports back the performance for each collection of orders important terms to note simulation a bundled report comparing the output of various packing scenarios applied to a collection of order data typically, the same orders are used in each scenario a completed simulation simulation configuration the settings that define which presets and scenarios will run and lineups will be output by the simulation for example, a full optimal carton report (opc) would include the number of cartons you want to see compared (best 10, best 20, etc) along with the sampling size, and any additional variations on the initial data set (ups retail rate variant) preset a built in series of operations to generate lineups an example preset would be “remove n” — this preset takes the input orders and cartons, cartonizes them, and removes the least performant box scenario boilerplate todo add exhaustive list variant a specific variation of packing behavior that will be applied to the uploaded data an example variant would be “fedex” which would take any provided orders and use fedex retail rates to assess the cost of an order todo add exhaustive list variant selection screen with “packsize” selected scenario a combination of orders, available cartons, items, and packing settings to run and report on this can range from a shipper’s current state of rates, orders, and cartons in a “baseline”, to a “perfect” scenario which would simulate a custom box generated for each order with cost awareness, or even the same order set as baseline with a different set of item dimensions to predict downstream costs of changing sku profiles in the context of a carton report, the scenario (orders and packing settings) drive the resulting output boxes source + run + presets + variants entering carton goals in the add cartons simulation type packing configuration settings that will be sent along with item and carton data to the paccurate api https //api paccurate io/docs/ for cartonization on each order this can include operational rules, rate tables, box selection goals, and even custom box creation parameters these will often change from scenario to scenario and variant to variant options editor with default options and tabs to edit options for additional variants lineup the output boxes in a given packing scenario within a simulation for example, our baseline lineup includes any provided cartons an add 1 lineup would include all of the baseline cartons plus one additional carton that performs well given the baseline operating constraints box lineup with associated kpis when composing a simulation , it’s important to first consider the goal of the simulation are you trying to test a new rule or operational change? determining if you can remove boxes without losing money? figuring out what new box sizes would be the best to have on hand? the answer to these questions will point you the right preset to choose and how to assemble your simulation configuration from there, the work becomes considering which orders, cartons, and packing configurations will apply to the scenarios that each preset requires with an understanding of the desired output of the simulation, you can start diving into the data and preparing it to be run preparing data for simulation and analysis in order to run a successful simulation, it is paramount that the source data is standardized the paccurate api is unitless, but assumes consistent units across types for example, if you have item size data in millimeters but carton sizes in inches, it will not pack correctly as it would assume all of the items are too large to fit in cartons keep this in mind as you merge data from various sources into a simulation template oftentimes we receive data that may require additional processing for example, an order of 144 singles could (and should) cartonize as a single case, or a subset of orders in a sample can only be packed in a certain set of boxes handling these types of issues typically requires some intelligent modifications to an orders file in the case of 1 vs 144 each problem, a customer often provides case and unit dimensions in excel, you can lookup the ordered quantity, compare it to the case quantity, and then return whether or not it is a case unit of 1 (or 2, or 3) as part of the order similarly, if you can intelligently determine that an order can only be packed in a certain set of boxes, we would handle that by applying a specific sequence value to that order line, then create a box exclusion rule for items that have that sequence value; something like dc a denoting it was coming from distribution center a, which restricts the boxes the order can be packed in for more about exclusion rules, read this article https //paccurate readme io/docs/rule types#exclude paccurate also encounters orders with specific zones applied to determine the cost of the order this can be helpful when determining an actual baseline cost (it also requires the application of a rate merge if the customer has custom rates for each zone) in summary, it is important to consider all of the parts that need to come together when making a single cartonization decision by the api what items are in the order, what cartons are available for this order, and also what rate considerations need to be included in the order starting a simulation to get started, sign in to manage paccurate io from the homepage, click “pacsimulate” — you’ll then be taken to the pacsimulate homepage once you’re up and running, this is where all of your simulations will be accessible to create a simulation, click “new simulation” in the top right you are then presented with the “choose source type” screen you can upload a file that consists of condensed order data, or existing api history customers running ad hoc simulations from data exports will use the upload file approach if you have not been provided a spreadsheet template by the paccurate team, click “download template” to get an example that you can populate the example template is covered in depth here https //www notion so/working with pacsimulate d683c5b84eb547ed8ae23c90cb914549?pvs=21 once your data has been uploaded, click “continue” you are presented with a “select simulation type” screen here you can select whether you want to generate recommended cartons, compare different packing scenarios, remove cartons from your existing lineup, etc you will be prompted to input how many cartons to add, remove, or generate based on the simulation type you select after selecting your simulation type, click continue the next screen will prompt you to select extra variants these variants have preset packing configurations that will be shown alongside your provided baseline packing configuration you can select any additional variants here that you may want to see, and then click “continue” once you have selected any extra variants, you arrive on the configure screen here, there are tabs for your baseline “options” along with any additional variants that are being run in the image below, you can see the packing configuration for our “perfect” preset the data here corresponds to our api schema, but a frequently changed piece of this configuration is default rate tables — you can remove or edit them to meet your specific needs; changing the default zone or provider for example it is highly recommended to consult with the paccurate team before making adjustments to these fields , especially if you have not used the api before with the pack options configured for your baseline and any other variants, click “run” — this will kick off the simulation and return you to the simulation home screen from there, you can rename your job, and see the simulation’s status you will receive an email when the simulation is complete the ui will also update to “complete” and you can click through to view the completed simulation! 🥳 forcing actuals when a customer has historical packing data available, its possible to tell pacsimulate to force each order to only use the cartons that were used by the actual pack to do this requires some preparation of data the steps to prep orders with actuals are determine which cartons were used on each order this may require deriving it by name, id, or even shipped dimensions use the “sequence” column in the orders tab to hold the exclusion logic for example, order abc’s sequence value could be “packed 03 packed 11”, while order def would be “packed 02” these values are then used when creating exclude rules given the example above, order abc would only allow items to go into boxes 03 and 11, where def could only pack in box 02 create a list of rules that correspond to the carton refids these rules should be included in the options tab, along with any other desired packing behavior with the rules saved in the baseline options tab, proceed with the rest of the simulation setup multi pass simulations there are some situations where the output of a simulation type may not exactly match the desired result an example of this would be packsize’s “best 150” boxes paccurate’s “add cartons” will take the customer’s baseline carton mix, then create 150 additional high performing boxes if you want to see how the orders would perform with just those additional 150 best boxes, you will need to do a multi pass approach the steps are as follows run add 150 upon completion, download the job zip and source file within that zip there is a file called cartons add 150 in the downloaded source file, add a new tab called “cartons best 150” – paste the contents of the cartons add 150 file into this sheet the newly generated cartons will have names prepended with “generated” – the other cartons will also be in this list remove the existing cartons from this list since we want to make sure any rates or packing rules that are applied in baseline are utilized in the new best 150 run, create a options best 150 tab and paste the packing configuration data into cell a1 finally, in the config tab of the source file, add best 150 to the variant column ensure the preset column is set to basic – this tells pacsimulate to just run baseline, alongside any of the existing variants you chose, and then run your newly created best 150 variant save your spreadsheet and rename it return to the pacsimulate dashboard, create a new simulation, and upload your newly created spreadsheet you can skip the wizard at this point – you’ve already done the wizardry in excel! as always, the paccurate team is available to troubleshoot simulation outputs and api configurations working with results files a complete simulation also includes downloadable raw files which were used in assembling comparison tables & charts these files are available in the dialog box, and are within the “results zip” within this zip are a number of text files, some of which are quite large each generated lineup has an output output summary output cartons and output cartons summary file that contain data for every packed order in the sample, as well as an orders with leftovers file that flags orders in the sample that contained leftovers (these can be empty) results file types output packing information for each order this includes cost of the order, number of cartons, number of dim rated cartons, etc, along with the raw request and response for each order output summary kpi values for each lineup such as orders, boxes, items, items per box, etc output cartons summary rollup of how many times a specific carton type was used across the analysis, along with related kpis (avg volume utilization, cost, items per box, etc) output cartons every packed carton, labeled by which fulfillment/order they are a part of, along with related kpis and an “item summary” which is placement data for each packed item in the carton results a list of json objects that contain the raw api request and api response for each order these are the largest files in the zip recipes a list of the raw json for each packed order these can be helpful used alongside our inspector tool to see how the api cartonized the request working with the example template you will notice there are 5 tabs on the excel sheet items, cartons, orders, config, and options pacsimulate uses these sheets (and additional advanced sheets, if provided) to assemble and run thousands of requests to the paccurate api items the items tab has 11 columns for properties that paccurate will use when packing orders required refid this is a unique identifier (often a sku) associated with a product profile this property must match the identifier used in the orders tab to determine which product is part of the order name the name of the product when a simulation is run, the names (and refids) are helpful when viewing the contents of a recommended box names can also be leveraged when building rules for packing, which are kept in the options tab weight the weight of the item paccurate is unit agnostic, meaning that you can use pounds or kilograms the api assumes that weight units are consistent however, so any maximums or thresholds set on a carton, generated box, or rate table must all use the same unit in order for cartonization to work properly sequence paccurate uses the sequence property to pack items in a box if desired it can also be used to target items for rules dimensions z, dimensions y, dimensions x length, width, height required properties for proper 3d packing centerofmass z, centerofmass y, centerofmass x tracked if provided (not required) note these column names are case sensitive and should not change changing column names will make the required values blank when the orders are simulated cartons cartons have a similar profile to items, but they are the containers into which items will be packed the properties available for cartons are refid a unique identifier for the carton these are used to create exclusion rules for item restrictions price the known material cost of the carton this value informs the carton choice decision when the goal of the simulation is price reduction it is added into the overall cost of each order and contributes to the total cost of the simulation weightmax the maximum weight the carton can hold this is crucial for not overpacking a box as mentioned above, paccurate is unit agnostic, but the units of weight should match the weight unit of items this is a required value weighttare material weight of the carton this contributes to the total shipped weight of the order name the name of the box especially helpful to keep track of a box’s performance in the output of a pacsimulate dimensions z, dimensions y, dimensions x length, width, height of the carton required properties for proper 3d packing orders the orders tab contains rows of unique product identifiers matched to an order identifier, and a quantity for each item pacsimulate assembles orders by their identifier, and uses the unique product identifier to map the properties of the item from the items sheet as well as the quantity defined for the item on the row orderid identifier for an order rows with the same orderid are assumed to be part of the same order required on all order lines refid this is the unique identifier for an item type the refid value should have a matching refid in the items sheet required on all order lines quantity the quantity of item (refid) for order (orderid) required on all order lines sequence an optional value to override any item properties in the specific order use cases for this could be any sort of advanced packing requirements that are order dependent — for example an order that has packing restrictions due to where it is being shipped from/to carrier a defined carrier (fedex, ups, etc) that can be used when using rate table matching in the advanced tabs \[link to rate table stuff] zone a defined zone that is used along with carrier to map an order to a specific rate table (if available) options the options tab contains the api settings https //api paccurate io/docs/ that will be used as a packing configuration when an order is sent to paccurate to be cartonized this can include things like rules, box limits, and custom rate tables consult with the paccurate team to craft the right api settings for your use case when setting up your initial pacsim run, here’s a template for what a standard options tab should have (note that these fields may change in further iterations, depending on how the first runs look) { "pack merge" { "boxtypechoicegoal" "combined", "generatedboxtypesmax" 64, "iteminitialorientationpreferred" false, "iteminitialorientationbestforbox" false, "itemorientationsearchdepth" 1, "seed" true, "boxtypedefaults" { "weightmax" 50, "ratetable" { "carrier" "ups" } } } } if you’re curious about why these value are set the way that they are, check out the appendix https //www notion so/working with pacsimulate d683c5b84eb547ed8ae23c90cb914549?pvs=21 ! config the config tab in the file acts as the conductor for the simulation it tells pacsimulate what scenarios and variants need to be run, along with options relevant to each scenario the columns in the config tab are preset a behavior you’re trying to run options for this are add n, rem n, basic, quick opc, full opc these are carton adds & removes, a basic comparison, and then optimal carton reports quick being a replacement of n boxes with the n best generated from a “perfect” run full opc takes much longer to run and generates an optimal number of boxes given the provided order set option s this is a snippet of json that includes order sample size, number of boxes to be added/removed, and any included preset variants that should be included in the run variant any additional custom lineups that need to be run along with the preset example presets and corresponding options preset options variant add n { "num add" \[5], "included variants" \["perfect"], "order sample size" 60000 } fedex rem n { "num rem" \[3], "included variants" \["perfect"], "order sample size" 60000 } fedex basic { "included variants" \["lowest cost"], "order sample size" 60000 } full opc { "carton sets" \[24, 26,28], "included variants" \["perfect"], "order sample size" 1000, "batch size" 128, "number of candidates" 50} | | as a rule of thumb, when you’re first setting up a standard opc pacsim run, your config should have values similar to what’s below (note that the values of batch size and number of candidates vary depending on your data) "included variants" \["perfect"] "batch size" minimum 1,000 (should be 100 max(target carton set) "number of candidates" 64 or (100 baseline cartons) if you’re curious about why these values are set the way that they are, check out the appendix https //www notion so/working with pacsimulate d683c5b84eb547ed8ae23c90cb914549?pvs=21 ! advanced tabs simply using the tabs above will prepare your simulation to be run through the simulation wizard once there, you can choose to add cartons, remove cartons, or run a full carton replacement in the event that you need custom cartons, items, or packing options for specific simulation runs, you can add more tabs to your spreadsheet here we’ll cover how to use them override options pacsimulate has several built in preset api configurations for example, “perfect” tells the api to pack each order in a custom box (within shippable parameters) however, if you want to include additional api settings to “perfect” (such as item rules or rate tables), you can create a tab called override options perfect and include your modifications to the baseline settings note be sure to include the initial state of the configuration you are overriding/augmenting in the example of “perfect”, the critical pieces are the boxtypegenerator — you will want this in order to make the custom boxes options similar to the override options tab, you can include an api configuration for custom behavior that you’d like to see compared to the other lineups in the simulation an example of this may be a new packing rule that you’re trying to understand the downstream impact of, or even a proposed new shipping rate table from a prospective partner you should create a tab name (for example) options proposed new rule and include this custom variant in the variant column as part of the config tab cartons , items , orders in the same way that you can replace options based on a variant name, the spreadsheet supports different sheets for different simulation runs for example, if you have a proposed new box list from a vendor, you can create an additional tab called “cartons new boxes” with the carton dimensions and settings including “new boxes” as a variant in the config tab will then use the cartons new boxes sheet for cartons during the run instead of the default cartons tab the same goes for items — a use case there would be understanding the effects of a dimensional change of an item in your master on shipping costs, etc pacsimulate presets tell the pacsimulate process what the target output of the simulation is going to be, and how to handle the output of each pass through the data all presets include the analysis of a “baseline” collection of data the available presets are batch analysis takes user provided cartons, items, and orders and compares them against variations of packing configurations users can provide their own variant configurations a spreadsheet, or use existing variant templates making changes to carton or item values require knowledge of the advanced tabs https //www notion so/working with pacsimulate d683c5b84eb547ed8ae23c90cb914549?pvs=21 in our data template optimal carton report (opc) based on order history, generates an optimal carton suite of a desired number of cartons the opc process leverages user defined parameters for carton footprints (min and max dimensions, rate tables & fees) as well as cartons in an existing carton suite to generate the recommendations for example, given an existing carton suite of 12 cartons and goal suite size of 8, the recommended lineup of 8 could include a mix of new and existing cartons, 8 entirely new cartons, or the best performing 8 cartons from your existing suite accepts various counts, so you can get the best 8, 10, 15, 20, all in one simulation add cartons takes an existing carton suite and adds a desired number of boxes this is a quick way to see how to expanding to your existing carton suite would materially impact your shipping spend remove cartons takes an existing carton suite and removes a desired number of boxes this is a quick way to see how to reducing your carton suite would materially impact your shipping spend quick carton report takes an existing carton suite and replaces a desired number of boxes given 20 cartons in a lineup and asked to replace 5, the generated report would contain a carton suite of the 15 highest performing boxes from the provided data, along with the 5 highest performing generated boxes of a “perfect” run variant types every simulation makes api calls to the paccurate cartonization engine these calls include item and carton dimensional and weight data, along with any provided additional settings and parameters when assembling your simulation, you may want to compare your existing packing configuration against different configuration options that represent an operational change — for example including a packsize machine, or seeing the difference between optimizing for cost and optimizing for item count selecting variants of your packing configuration will show that change applied to the same set of orders that exist in your baseline data once selected, each variant can be further adjusted before the simulation is run to better match the desired behavior standard places items in their initial orientation, optimizes for most items in a carton, uses fedex zone 5 for cost estimation perfect generates a cost optimal custom box (or boxes) for each shipment within usps and fedex package requirements incorporates known handling fees when creating generated boxes human packed virtually packs like a human fit the most items possible without considering cost humans also estimate things as more “full” than they are, so maximum volume usage is 75% returns cost based on fedex zone 5 lowest cost return the cost optimal packing configuration, regardless of how many cartons it may comprise uses fedex zone 5 to make the cost aware decision most items return the packing solution that has the most items in the fewest cartons, regardless of cost returns cost based on fedex zone 5 combined returns the least expensive solution between most items and lowest cost settings takes longer to return, though negligible given most parcel item counts pallet demo setting that uses full and half size pallet as the only carton sizes response visual includes pallet graphic underneath the packed items one sku per box direct ship simulation used for inbound shipments fedex uses a fedex retail zone 5 rate card for all shipments ups uses a ups retail zone 5 rate cart for all shipments packsize replicates a packsize box on demand machine with their box size paramaters, optimized for the most items per box packsize + paccurate replicates a packsize box on demand machine with their given parameters, optimized for transportation costs working with zip files pacsimulate can also accept a collection of pre formatted files, compressed into a zip the file naming convention is very similar to the tabs — the only difference being each “tab” is its own specific file this approach is especially handy if you have lengthy options files that include exhaustive rates, zones, or rules another benefit of working with raw files is that you can edit them in type specific ides (ex vscode or any text editor for adjusting options json files) working in the filesystem allows for quick duplication, deletion, and then editing accordingly ├── source folder │ ├── cartons │ ├── config │ ├── items │ ├── options json │ └── orders the file structure above represents the required files to include in your zip cartons is a tab delineated csv file formatted the same way as the cartons tab in the xls https //www notion so/working with pacsimulate d683c5b84eb547ed8ae23c90cb914549?pvs=21 spec config is a json file that represents the simulation configuration (example below) items is a tab delineated csv file, formatted the same way as the items tab in the xls spec https //www notion so/working with pacsimulate d683c5b84eb547ed8ae23c90cb914549?pvs=21 options json is a json file version of the options tab orders is a tab delineated csv, formatted the same way as the orders tab in the xls spec https //www notion so/working with pacsimulate d683c5b84eb547ed8ae23c90cb914549?pvs=21 a config file is similar to how the config tab in the excel sheet is composed, but instead of rows for presets, there is a scenarios array to populate here is an example config for an add n simulation { 	"scenarios" \[ 	 { 	 "preset" "add n", 	 "options" { 	 "included variants" \["standard","perfect"], 	 "num add" \[200], 	 "order sample size" 1200 	 } 	 } 	 ], 	 "variants" \[] } in this configuration, we’re going to run an add n where we add 200 new cartons we are including a perfect and standard variant to show in the output lineup there are no additional variants being run in this simulation, so the array remains empty 💡 tip download the job zip for any existing simulation to see how the assets were extracted from the xls this is an excellent starting point for creating jobs using the zip approach for a more sophisticated configuration, take a look at this job folder ├── location b mailers study │ ├── cartons │ ├── cartons mailers 2023 │ ├── cartons mailers 2024 │ ├── config │ ├── items │ ├── items mailers 2023 │ ├── options json │ ├── options mailers 2023 json │ ├── options mailers 2024 json │ ├── options mailers json │ ├── options perfect conveyable json │ ├── options perfect json │ ├── options unrestricted mailers json │ └── orders the config file looks like { 	"scenarios" \[ 	 { 	 "preset" "basic", 	 "options" { 	 "included variants" \["perfect"], 	 "order sample size" 65536 	 } 	 }], 	 "variants" \[ 	 "mailers", 	 "unrestricted mailers", 	 "mailers 2023", 	 "mailers 2024", 	 "perfect conveyable" 	 ] 	} in this simulation, 7 lineups are generated baseline, perfect, mailers, unrestricted mailers, mailers 2023, mailers 2024 , and perfect conveyable the custom variants have been created to demonstrate different packing constraints on conveyability, pricing, and carton exclusion the options json file provided in the folder controls the packing behavior for the perfect and baseline lineups, while all of the other options files correspond to the custom variants the cartons file is used for most (but not all!) of the lineups as well as shown above, our folder includes two additional cartons files cartons mailers 2023 and cartons mailers 2024 , this means that when the simulation runs the variants mailers 2023 and mailers 2024 , it will use those files as the cartons when assembling orders finally, we’ve also included a file called items mailers 2023 — this is a separate item master to be used when assembling orders for the mailers 2023 run refid name dimensions z dimensions y dimensions x weightmax weighttare price ratetable carrier ratetable service ratetable zone ratetable dimfactor 1 customerbox 15 20 75 12 75 6 0 40 0 0 0 	 1 customerbox 34 20 5 14 25 12 25 40 0 0 0 	 1 customerbox 35 19 5 19 5 12 0 40 0 0 0 	 1 customerbox 37 25 75 18 5 5 5 40 0 0 0 	 1 customerbox 38 22 5 18 5 13 5 40 0 0 0 	 1 customerbox 31x12x8 29 5 10 5 6 5 40 0 0 0 	 1 customerbox 130 11 5 8 875 4 1875 40 0 0 0 	 1 customerbox 170 14 75 8 625 7 0 40 0 0 0 	 1 customerbox 180 13 5 8 5 10 5 40 0 0 0 	 1 customerbox 230 18 5 10 5 12 5 40 0 0 0 	 1 customerbox 260 21 25 16 25 9 0 40 0 0 0 	 1 customerbox 29x20x18 27 625 18 625 16 75 40 0 0 0 	 200 customerbox mailer \[5lb] 18 0 12 5 4 0 5 0 150 0 1 0 300 customerbox mailer \[10lb] 18 0 12 5 4 0 10 0 150 0 1 0 why would we assemble our simulation this way? in order to control specific things from lineup to lineup (ie item properties, or carton properties), we need to create files for each one in the case of the mailers 2023 and mailers 2024 runs, their respective cartons and options files are the same, but different from baseline we want to compare them against the order set, while introducing a new mailer size in mailers 2024 we want to change some item properties in order to make more items eligible to use that mailer size, so we’ve added a specific items file just for that run the additional variant options files use the same orders, cartons, and items as the baseline lineups, but with small changes in custom generated boxes zipping them up once you’ve created your files and placed them in your project folder, it’s time to compress them into a zip file on a pc, right click the file you want to zip, and then select send to > compressed (zipped) folder folder compression dialog on windows on a mac, navigate to the folder with all of the files prepared for simulation from within the folder, select all of the files, then right click and select compress this will create this zip file that you can use for uploading selecting files for compression on a mac 💡 on a mac, do not compress the folder itself, only the files within it details on using the command line to create the zip first, open terminal and navigate to the folder that has all of your source files ➜ cd /users/username/documents/location b mailers study then, use the zip command to compress the files into a zip location b mailers study zip r my simulation files zip this will output a list of files that have been compressed into the zip archive confirm the file has been created by running ls and checking that your new my simulation files zip file is in the list ➜ cd /users/username/documents/location b mailers study ➜ location b mailers study zip r demo files zip adding ds store (deflated 97%) adding options json (deflated 86%) adding config (deflated 36%) adding options perfect conveyable json (deflated 87%) adding cartons (deflated 67%) adding options unrestricted mailers json (deflated 86%) adding options mailers 2023 json (deflated 86%) adding options mailers json (deflated 86%) adding options mailers 2024 json (deflated 86%) adding cartons mailers 2024 (deflated 68%) adding cartons mailers 2023 (deflated 68%) adding orders (deflated 74%) adding items (deflated 71%) adding options perfect json (deflated 86%) adding items mailers 2023 (deflated 84%) ➜ location b mailers study ls cartons items options mailers 2023 json options perfect json cartons mailers 2023 items mailers 2023 options mailers 2024 json options unrestricted mailers json cartons mailers 2024 my simulation files zip options mailers json orders config options json options perfect conveyable json uploading to pacsimulate now that your zip has been created, go to the pacsimulate homepage and click “new simulation ” this will open a modal to select which type of simulation you want to run click on “upload prepared zip or xlsx” and then click “continue” next, you’ll see the upload source file screen drop your files onto the dropzone, or use the file browser to navigate to your compressed zip once the file has been uploaded, you will receive a success alert — you can close this along with the file upload modal from the simulation list page, click the actions dropdown in the top right corner, and select “start analysis” your simulation will be added to the queue and get started shortly thereafter! conclusion hopefully this adds an intuitive and flexible method of creating more complex simulations without the limitations of excel as usual, the pacsimulate process will report a failure if files are missing or not formatted properly troubleshooting simulations when a simulation ends, it is flagged as either “complete” or “failed ” when a simulation fails, the paccurate product team is alerted oftentimes, this means there is a misconfiguration within the content of a highly customized sheet if a simulation completes successfully, but the results are unexpected or surprising, the best place to investigate is from an example pack that was generated as part of the run, from the lineup that has the issue clicking into the individual lineup, you will see a list of boxes with their % usage, average cost, and a link to “view common packs” for the box in here, you’ll see common item combinations that comprised that box selection after clicking “view common packs” a packed order will show up click “view in inspector” and it will open the order in our inspector tool, along with the raw json for the pack and some gui tools with this view, you are able to see exactly what comprised the pack the boxes available, rules that were merged in, and any rate information relevant to the pack compare these values against what you had expected — are the rules from a custom options file missing? cartons supposed to come in from a custom cartons tab? this view helps you understand how the pieces all came together perhaps the order sheet item rule logic was not applied correctly and you need to revisit, etc for troubleshooting specific packs or investigating order count inconsistencies, its helpful to download the results zip file for the simulation after unzipping, the files worth using are the orders with leftovers and recipes files that correspond to the lineup orders with leftovers is a list of order ids that, when sent to the api for packing, returned leftovers (items that could not be packed in the available cartons) recipes files are large files comprised of all of the raw json sent to the api for each order these can be searched for a particular orderid – once you find the instance of the orderid, the json can be copied and pasted in the raw tab of our inspector tool 💡 \[more on kpi terms and definitions]\(https //www notion so/1f357565b7f5433f845f8e7d42582fa2?pvs=21) file processing errors there are several places in the pacsim interface where you can upload spreadsheets if you are using the creation wizard, the excel file is checked as soon as it is uploaded, and then parsed & validated in the browser once you’ve got a reliable sheet template, you can save steps by uploading to the server directly the server also runs validation checks on the uploaded file common brower side (wizard) issues missing a required tab the wizard requires items, cartons and orders to exist as tabs in the spreadsheet when uploading confirm all tabs exist and are labeled correctly a required tab is empty in order to validate and assemble normalized data from a spreadsheet, the wizard requires there to be at least one valid entry in each required tab for example, if you are using inline item dimensions via the orders sheet, it is still required to have an item of some kind in the items sheet similarly, if you are using only generated boxes in the simulation, the cartons sheet should still include a dummy carton file is too big web browsers are only so powerful large spreadsheets with 100k+ row sheets should use the direct upload option and bypass the wizard your browser will be happy you did this instead of letting it run out of memory while expanding all of those rows into normalized data! common server side (direct upload) issues duplicate header names make sure column names are unique before uploading this happens most often when remapping a column to a formula driven one empty item data the server loops through all rows of items and checks they have dimensional and weight properties pacsim will reject sheets that has empty values for these item properties invalid options before uploading your sheet, be sure to run any values from options tabs through a json linter excel makes this especially difficult; we encourage users to edit their options files in a text editor that supports syntax highlighting and linting before putting the options into the excel sheet appendix opc api config options & explanation https //www notion so/opc api config options explanation 0ee5cda8e1dd4c8f98b4a34ddecca472?pvs=21 pacsimulate kpis \&definitions https //www notion so/1f357565b7f5433f845f8e7d42582fa2?pvs=21 pacsim process updates 2024 https //www notion so/pacsim process updates 2024 500360c4ee1f4dac9f6f42008668c2e4?pvs=21