Guild of Project Controls: Compendium | Roles | Assessment | Certifications | Membership

Tips on using this forum..

(1) Explain your problem, don't simply post "This isn't working". What were you doing when you faced the problem? What have you tried to resolve - did you look for a solution using "Search" ? Has it happened just once or several times?

(2) It's also good to get feedback when a solution is found, return to the original post to explain how it was resolved so that more people can also use the results.

Bulk Distribution Schedule and Logistics

25 replies [Last post]
Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

I am creating a sample schedule for the Management of Bulk Deliveries. The model shall look for optimal re-assignment of all future deliveries when missed deliveries happen. The re-assignment shall consider all constraints and shall not depend on manual adjustments.

Trucks are Spatial Resources.
Trucks/Drivers have their individual calendars.
Trucks/Drivers have their particular set of skills [delivery routes they can service].
Delivery Route Steps:
- Delivery Start linked to successor Delivery Start by time lag
- Truck from home base to loading base
- Truck loading at filling station
- Deliveries
Delivery steps/activities have their particular calendars and work hours.
Individual delivery steps shall be performed within same day.
Not all delivery steps need to be on same day.
There is a limited number of Trucks.
There is a limited number of filling stations.

I will be posting my images, files and questions regarding this schedule.
Thank you.


 photo bulk007_zpssbkih5wg.jpg

The green rectangle represents the equipment yard where all trucks will be parked during the night.  In case of a multiple deliveries route that cannot be finished within the same day the truck will make next delivery(es) next day.

Replies

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

The use of resource usage chart can be very useful to visualize in-use and idle resource hours, necessary to make good cost estimates in the lack of historical data specific for your routes.

 photo Usage Chart_zpsyaihk2bk.png

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

The capability to model spatial resources is essential to this job but do not overlook the need to keep hundreds/thousands of activities to happen within the same day.  In this job we have 440 deliveries activities plus a few hundred other activities that must be planned to be performed within the same day, keeping this using manual methods is insane.  Take a look at the following video and you will see how by releasing this constraint the activity would be scheduled to happen in two days.  Allowing scheduling such activity starting from one day and continuing next day makes no sense at all.

Spatial Resource calculations are very complex, they take more computer time than regular resource leveling; if you add the requirement for activities to be scheduled to happen within the same day will make it even more time consuming, doing it by hand on everyday basis would be nuts.

Logistics calculations can be very tricky, and the equipment is very expensive; an ISO Container at about 130K$ea, close to 280K$ea after adding chasis, truck + pump and a tanker truck at about 300K$ea including pump required for unloading.  Errors are paid with money.

Bulk Distribution calculations might require some modeling instead of simple formulas and management is even more challenging.  Not only the number of trucks is a relevant constraint but also the number of loading stations.  I cannot imagine such a challenge without some modeling you can visualize.

An interesting and unusual application of Spider Project capabilities!

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Land at sight!

I created a scenario of 1440 deliveries and 30 trucks available as spatial resource. 

MODIFIED TO DETERMINE CAPACITY OF THE FLEET.
- Named trucks not tracked, deleted related resource and skills.
- Truck quantity determined as a consumable.
- Number of fill stations tracked.

Without prioritization the schedule makes not much sense as expected. After prioritization all make sense, I can see how the deliveries are delayed with limitations on available trucks as a spatial resource, something you cannot model if using traditional renewable resource.  Of course you can reduce peaks but at the cost of deliveries being delayed.

Also the requirement for some/all individual activities to happen within a single day, to be delayed for next day if cannot happen worked as expected with Spider option for this requirement.  

A logistics challenge solved.  As I said before seeing is believing.

 photo Bulk Logistics_zpsph4fykxe.png

An advantage of Dropbox and similar programs: when you put some file in the Dropbox folder in your computer it appears in the linked Dropbox folders of those that shall get this file. They do not need to click some link and download - they will find your file in specific folder that can be also Spider storage. This way you can send and collect subprojects and actual data input tables from many remote places as if they keep their files in your computer.

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

I have not used Dropbox for quite a long time, I used it for storing files for an IPad, I will take a look at it.  Yes all I need is to share some print files and PDF will make it.

Any device PC/IPad/IPhone ... and easy to sync. I suppose even the drivers will be able to see the changes on their phones.

I am also exploering Bitly: Short URL services like Bitly and Goo.gl will track how many times the links are clicked, showing you the count of how many times your file has been clicked on.

Bitly - Link Management Platform

I don't know the purpose for sending files to FTP but if you want to share project files or reports with known persons it is easier to use Dropbox. Saving file (for example printing Resource Gantt to pdf) in the Dropbox folder you will automatically send it to Dropbox folders of the persons that share this folder with you.

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

To share on FTP maybe all is needed is to print the Resource Gantt into Snagit and send it to FTP server.

I am not an IT person, ScheduleIt Desktop Version makes the transfer and the pages are automatically linked.  By clicking on a bar segment a new window[page] is displayed. In this case it might be several pages will be required.

https://www.scheduleit.co.uk/faq/10070-can-we-output-the-schedule-to-html-web-pages-for-our-own-website

We do not use the Full Web Output Type option that have some limits/license; we use another option that creates web pages without such limit, not as fancy but good enough for our needs.

I will also be exploring FTP Manager Lite.

http://www.deskshare.com/ftp-manager-free.aspx

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

I understood that your projects are short (less than one year).

·       This specific project will be 3 months; past/current/next.

·       At the end of the month it will be saved as a new project where one month will be deleted and a new month deliveries will be added.

By always keeping at least one month history you make sure no remaining lag is erased because no lag will be over one month.

In this case you will have the set of potential exceptions for this and future projects, so you will not need to add new dates later but of course change exceptions in the individual calendars.

·       A set of new exceptions is always on the table when dealing with named resources. It can be changes in vacations, medical appointments, court appointments and many others we can get ahead to include in our planning.

For long projects it does not work but in this case it is too hard to create many hundreds of potential exceptions. To add them in case of need looks easier.

·       I am aware of this, what you suggest is SOP in most jobs.  I am exploring alternatives and this is one of the reasons for this discussions.

·       BTW more interesting case is when shifts span two calendar days.

·       With the use of Excel it was as easy as 123 to create the exceptions. Adding non work days becomes easy.

·       A name such as Exception A does not help very much, to use some standard such as the date within the name makes sense no matter if created one/day or as needed.

·       This approach I am considering requires the exception to span a single day.

The following references can give you an idea of other non CPM options available.  Most probably too expensive/overkill and wonder if will be able to meet some dynamic scheduling requirements.  My experience is many software vendors promise but do not deliver.  I am not impressed by words such as optimization, powerful, strategic objectives, robust, lean … “seeing is believing”.

·       https://www.mjc2.com/bulk-logistics.htm

·      For CPM schedules Spider is Best of Breed, this is a no brainer.

·      For other manual schedules we are using Schedule it. We manage a fleet of containers to be loaded in the Continental USA and distributed within the Caribbean Islands. We post the Schedule on a web page generated by the software where those with access can see a Gantt of planned deliveries and by clicking any task bar a window will provide the details of what is going on such as Booking Number, re-assignments, special events such as when El Faro sunk.  It is ironic the software was created as a tool to manage meetings, but we are able to create very useful reports such as inspections due reports and histograms showing distribution of time containers are inland for every island, Jamaica is a disaster but with the reports we keep them under some control.

·      https://www.scheduleit.co.uk/index.htm?scheduling-software

·      Creating and posting the Driver Schedules on a web hosting service such as Network Solutions is an issue that eventually will like to explore.

Rafael,

I understood that your projects are short (less than one year.

In this case you will have the set of potential exceptions for this and future projects, so you will not need to add new dates later but of course change exceptions in the individual calendars.

For long projects it does not work but in this case it is too hard to create many hundreds of potential exceptions. To add them in case of need looks easier.

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

These calendar exceptions will not be automatically repeated every year; they are intended to represent specific vacation days that will vary from year to year, different to holidays.

Also please be reminded that some holidays do not happen on the same day/month of the year, these can be calculated with some complex Excel formulas available on the web.

http://www.excel-easy.com/examples/holidays.html

BTW, Easter is the first Sunday following the full moon that occurs on or next after the vernal equinox.

https://www.mrexcel.com/forum/excel-questions/206653-first-friday-calculation.html

To calculate Easter:
=DOLLAR(("4/"&A1)/7+MOD(19*MOD(A1,19)-7,30)*14%,)*7-6

Just substract 2 at the end for Good Friday:
=DOLLAR(("4/"&A1)/7+MOD(19*MOD(A1,19)-7,30)*14%,)*7-6-2

where A1 houses the year.

https://www.timeanddate.com/date/leapyear.html

Nearly every four years is a leap year which has 366 days, as opposed to a common year, which has 365 in the Gregorian calendar.

In my case I would rather use.

https://www.timeanddate.com/holidays/puerto-rico/

In my case I would rather use the following reference.

https://www.timeanddate.com/holidays/puerto-rico/

In the Gregorian calendar three criteria must be taken into account to identify leap years:

  • The year can be evenly divided by 4;
  • If the year can be evenly divided by 100, it is NOT a leap year, unless;
  • The year is also evenly divisible by 400. Then it is a leap year.

For Feb 29, there are 30 leap years between 1900 and 2020:
1904, 1908, 1912, 1916, 1920, 1924, 1928, 1932, 1936, 1940, 1944, 1948, 1952, 1956, 1960, 1964, 1968, 1972, 1976, 1980, 1984, 1988, 1992, 1996, 2000, 2004, 2008, 2012, 2016, 2020.

In my case I would rather use:

https://www.timeanddate.com/holidays/puerto-rico/

Rafael,

it loos like you suggest to create and to use 366 exceptions. OK, it can be done and I suggest to add 1 year period for these excpetions to avoid repeating them for each year.

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Because we will make frequent use of calendar exceptions for each truck [driver] I am considering to use a pre-defined calendar exception for each calendar day.   With use of excel cut and paste it was easy to do and figure out a coding to keep the sorting.  By copy-paste start date to name it will be easy to correctly identify the exception.

Any comments will be welcomed.

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

To use standard resource leveling will be adopted [thanks for the suggestion]. I agree in this case there will be not much difference and prioritization under standard scheduling shall take precedence.

Yes, with multiple calendars the problems may happen.

The bug that you discovered is already fixed.

But I still suggest to use standard leveling because in this project resource competition is minimal and optimization will create the same schedule.

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

By creating a calendar exception for 3-9-2017 I got a schedule inconsistency.  After I create an individual calendar for each truck this might get more frequent and unpredictable.

 photo CalendarissueX01_zpsxpfhqqyq.jpg

I am still refining the model, for example besides creating a separate calendar per truck I am renaming the Skills to represent the Routes the group can handle.

 photo SkillNames001_zpsp2n1shal.jpg

The purpose for resource loading the hammocks is to be able to report Route Assignments per truck per day.  The Activity Gantt is good to visualize Clients Deliveries while the Resource Gantt is better to visualize the Route Assignments per truck per day.

 photo TruckSchedule001_zpsb2ydj1fv.jpg

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

By creating a calendar exception for 3-9-2017 I got a schedule inconsistency. 

Please download the following file:

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Yes it works as expected but it is done through hammocks resources being leveled.

I recall having some issues with leveling resources on hammocks but I do not have such file any longer.  It was a model for the Westerschelde Tunnel; I created a model using Spatial Resources via Materials [Consumable Resources] and a model using Hammocks.  The model using Hammocks had some inconsistencies. For this reason I avoid depending on leveling Hammocks and use Materials [Consumable Resources] models. 

Needless to say it would be easier to use Spider Hammocks to model Spatial Resources instead of materials/consumable resources.

Rafael,

look at this file http://www.mediafire.com/file/s0vl965jycnq040/BULK_01.002.sprj

I deleted material trucks and it looks like the schedule is right.

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Vladimir.

Take a look to the following file where hammocks are deleted.

I resource loaded the hammocks for purpose of reporting truck usage as materials [consumable resources] reports do not give me the reports I am looking for.  I believe resource loading on hammock in this model will not be "leveled" because materials leveling will take care of it.  May I call it Double Jeopardy?

But you assigned roles to hammocks (route A, B, etc.) and so this cannot happen.

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

I need to identify truk number so each truck is a different named resource.

I need to use skills so named resources are assigned.

Trucks are spatial resources, if not the following might happen. Deppending on the lag between deliveries it might happen or it might not. I use the links to keep the lags, to keep the frequency of deliveries, usually one route per week, but can be different.

FYI this is related to a job for the Orlando-PR Trucking Company my wife does some work.  She coordinates the bookings for USA-PR shippings of ISO Containers.  This is for inland transportation within PR of other product, a new client to this Trucking Company. It is not a big job a few trucks will be enough.

 photo Bulk018_zpsfp8tubyb.jpg

The following sequence does not makes sense; Truck 1 returns to loading before unloading.

 photo Bulk017_zpsxf0ukfzk.jpg

Rafael,

thank you for an example!

We will look to the problem with optimization tomorrow.

Until then you may use standard leveling that works fine.

I do not understand why do you use space resources in this case. It looks like it is sufficient to create dummy resource with the quantity 2 and assign it to all activities except hammocks.

To keep an order of routs use phase priorities and standard leveling. In this case optimization is not required.

Best Regards,

Vladimir

Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

You can download the sample files from the following links. Version 1 has no issues, version 2 have the issue after the resource group was created.

Please note:

  • I am using resource skills as not to fix individual truck for each delivery; if any truck/driver is unavailable someday then other truck/driver will take over the delivery. As soon as there are many deliveries and several trucks if one delivery is delayed and spatial resource modeling is not used then it might be necessary to level resources using temporal resource dependencies for the whole schedule, an error prone procedure that if not done properly can result in schedule inconsistencies.  A monumental task necessary to be repeated for every re-schedule.
  • I am resource loading the hammocks. Any comments about resource leveling on hammocks will be welcomed.
  • I am using cost codes to count number of deliveries and volume delivered.
Rafael Davila
User offline. Last seen 6 hours 46 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

The following image shows a screen view of the schedule. All was working as expected untill I created a resource group as to report on a single line within the resource diagram how many trucks are assigned per day, then re-scheduling crashed.  Reporting by specific truck was no issue.  Any help will be welcomed.

 photo BULK02_zpsqxvmuekm.jpg