Wednesday, November 2, 2011

Transportation As A Process

It is no doubt that transportation cost is a major part of any supply chains. To improve transportation operations, one can view it as just like any other process, like any other manufacturing or logistics process. With this approach, you can review the flow rates, setup/changeover times, utilization, and cost to balance between transportation leadtime, inventory and transportation capacity according to each supply chain needs.

To help one reduce cost, and probably speed up flow, you can use my web apps:
http://routeanalytics.appspot.com/ and http://nearmyroute.appspot.com/

Friday, October 14, 2011

Find Places Near Your Transportation Stop Point

Feel free to try keying in your stop points in latitude and longtitude into my awesome application on the internet! Rather than talking about it. Let me show it! :)

http://nearmyroute.appspot.com/

Monday, October 10, 2011

Google Maps API for Small Businesses

The ability to search for nearby businesses using Google Maps APIs are very interesting. Using Google Places webservices API (one of Google Maps API), you can:

1. search for additional delivery and backhaul opportunities along your delivery routes
2. explore partnership opportunities in delivery and backhaul to share resources and reduce carbon footprint
3. Know who your competitors or complementary businesses are in a particular location
4. Location new store near a certain profile of stores

Explore Google Maps API more at http://code.google.com/apis/maps/documentation/webservices/

Below are the codes I use. What do you think? elegance in simplicity? :)

import socket # for connecting to googlemaps api
import urllib #retrieve web pages
# initialize namelist as adict()
nameslist=dict()
#for each line in the file, pick put the latitudes and longtitudes, print it

fhandopenstorefile=open('storelocationslatlongall.csv')
for line in fhandopenstorefile:
        line=line.rstrip()
        print line
#put latitudes and longtitudes in the http
        http='https://maps.googleapis.com/maps/api/place/search/xml?location='+line+'&radius=805&sensor=false&key=AIzaSyAJzHX3bW7PiB8T5xRlmp1LpBvFtXgChkc'
        print http
#sent it to google and get the xml file
        fhandopenhttp=urllib.urlopen(http)
        for line in fhandopenhttp:
                print line.strip()
fout=open('output.txt','w')
fout.write(str(nameslist))
fout.close()

Tuesday, October 4, 2011

Supply Chain Analytics For Small Businesses

When we have information on the probablity over several factors that may affect a decision, we can use simulation, or probability (decision) trees to find the option with the highest expected profit.

Probability can be used together with variability in information obtained (e.g. forecasts, demand, etc...) to build analytical models? like how many bus seats or hotel rooms can be overbooked to maximize my profit?

In fact, with so much data over the internet, we can now build our own analytical model right? one easy way to start is with google analytics for small businesses
http://www.google.com/analytics/product.html

Read also interesting article at WSJ on  the dearth of expertise in analytics, and its opportunities:
http://online.wsj.com/article/SB10001424052970203405504576602853746798820.html

Be Careful Of Implementing An ERP System

There are many companies who are persuaded by glittering SAP or Oracle advertisements championing their Enterprise Resource Planning (ERP) software. Let me share what I know and some links before our small businesses jumps onto the ERP bandwagon. Even when a company had implemented ERP, can they make better use of the data they have?

Advantages of ERP:
1. Integration of information (Finance, Manufacturing, Inventory, Sales)
2. Visibility of information
3. New functionalities
4. Standardization of data and processes

Disadvantages of ERP:
1. Loss of flexibility and creativity on the ground due to standardized processes
2. Decreases flexibility to react to market
3. Customization is expensive in subsequent upgrades

Success Factors of ERP implementation if:
1. Customer demand is stable
2. Product is standardized
3. Product is of a modular design
4. There are Frequent shipments to customers

Poor Chance of Success with ERP implementation when:
1. Aggregate demand is unstable (>10% pulses in demand)
2. You have long unavoidable leadtimes from suppliers









Further reading:
1. http://www.tech-faq.com/erp.html
2. http://www.cio.com/article/40323/ERP_Definition_and_Solutions

Principles of Responsive Supply Chains for Small Businesses

We have heard of small business are fast and agile. Nowadays, it is not big companies squashing small ones, but the fast leaving the big and slow companies behind.

So what makes a fast, responsive small business. The answer is to have a responsive supply chain. Principles of responsive supply chains are:
1. Lower production lead times (through pre-positioning raw material, or have some one create it in subassemblies, or reserving capacity)
2. Lower transportation lead times (air rather than sea/land/rail)
3. Parallel manufacturing
4. Small lot production
5. Frequent deliveries
6. Close coordination (design, manufacturing, commercial team sitting together)
7.  Good Forecasting (http://fastsupplychain.blogspot.com/2011/09/method-to-quantify-higher-profits-from.html)

Monday, October 3, 2011

Google App Engine For Small Business Supply Chains

We all know technology is terrific enabler for small business supply chains. We can now use google maps to track and trace your salesperson and transportation fleet; share transaction information through googledocs, talk for free on GoogleTalk. Receive related advertisement when you use Gmail, etc...














How about creating your own transportation routing system, customized to your operational needs using Google App Engine?

When you run the code, it will prompt you to enter the name of nodes, press enter and keep on entering name of nodes. When done, you type in “ok”, then the nodes will pair up, you need to key in the distances here. once the distances are keyed, it will dine the shortest distance.

Isn't it an elegan solution? :)

import sys
print 'Content-Type: text/html'
print ''
print '<pre>'
class node:
    label = ''
    # adjacency list of the node
    neighbors = [] # list of nodes
    distances = [] # distances to neighbors
    # for Dijkstra
    prevNode = None
    totalDistance = 0
    # constructor
    def __init__(self, label):
        self.label = label
        self.neighbors = []
        self.distances = []
        self.prevNode = None
        self.totalDistance = 0
# find the shortest paths to all nodes recursively
def dijkstra(node):
    # visit all neighbors and update them if necessary
    while len(node.neighbors) > 0:
        n = node.neighbors.pop(0)
        d = node.distances.pop(0)
        if n.prevNode == None or n.totalDistance > d + node.totalDistance:
            n.prevNode = node
            n.totalDistance = d + node.totalDistance
        dijkstra(n)
# get the shortest path to the given node
def route(endNode):
    node = endNode
    labels = [endNode.label]
    # distances = []
    while node.label != node.prevNode.label:
        # distances.append(node.totalDistance - node.prevNode.totalDistance)
        node = node.prevNode
        labels.append(node.label)
    labels.reverse()
    return labels
    # distances.reverse()
    # return (labels, distances)
       
# create a graph - need user input on places it needs to go to
#1st step to add in node name and coordinates first, then display node name and coordinates when i type ok. then calculate the distances relative to each other, then pair and add in distances.
##a = node('a')
##b = node('b')
##c = node('c')
##d = node('d')
##e = node('e')
##f = node('f')

graph = []
while(True):
    x = raw_input("name of node : ")
    if x=='ok':
        break
    x=node(x)
    graph.append(x)
print "graphs are", graph
prelimedges=[]
for n in graph:
    print n.label
   
    prelimedges.append((n))
print "prelimedges are ", prelimedges
print "first node is ",prelimedges[len(prelimedges)-1]
print "last node is ",prelimedges[0]

edges=[]
##edges.append((prelimedges[0],prelimedges[1]))
##
##print edges
##print len(prelimedges)
start=0
while start<len(prelimedges):
    print start
    count=0
    while count< len(prelimedges):
        print "count is",count
        print "start is",start
        if start==count:
            count=count+1
            print "count now becomes", count
            if count==len(prelimedges):
                break
       
        distance=raw_input("distance between them: ")
        intdistance=int(distance)
        edges.append(((prelimedges[start]),(prelimedges[count]),intdistance))
        count=count+1
        print "after appending to edges, count is", count
        print edges
    start=start+1
print "at the end, the edges are", edges


# create bidirectional edges of the graph
##edges = []
##edges.append((a, b, 14))
##edges.append((a, c, 9))
###edges.append((a, d, 7))
##edges.append((b, c, 2))
#edges.append((b, f, 9))
#edges.append((c, d, 10))
#edges.append((c, e, 11))
#edges.append((d, e, 15))
#edges.append((f, e, 6))
#edges.append((e,g,10))
#print edges
# create adjaceny list of neighbors for each node
for edge in edges:
    edge[0].neighbors.append(edge[1])
    edge[0].distances.append(edge[2])
    edge[1].neighbors.append(edge[0])
    edge[1].distances.append(edge[2])
# print the graph
print 'The graph:'
print
for n in graph:
    print 'Node: ', n.label
    print 'Neighbors:'
    for i in range(len(n.neighbors)):
        print n.neighbors[i].label, n.distances[i]
    print
# find the shortest paths to all neighbors starting w/ the given node
#startNode = a
startNode = graph[0]
print 'Route start node:', startNode.label
startNode.prevNode = startNode
dijkstra(startNode)
##print
##print 'The graph after Dijkstra:'
##print
##for n in graph:
##    print 'Node:', n.label
##    print 'totalDistance:', n.totalDistance
##    print 'prevNode:', n.prevNode.label
##    print
# print the shortest path to the given node
#endNode = c
endNode = graph[len(graph)-1]
print 'Route end node:', endNode.label
print 'Route:', route(endNode)
print 'Total distance:', endNode.totalDistance

Sunday, October 2, 2011

Leveraging Global Resources for Personalization

Push-pull boundary in supply chains is very interesting, especially for small logistics companies further in the supply chain. customization and personalization nearer to the customer requirement reduces overall inventory costs. Professor MS Krishnan at Ross School of Business calls it the personalization from leveraging global resources. Our ubiquitious IPhone allows us to personalize use from apps,and almost everyone to develop their own apps. Build-a-Bear, Google Apps, Facebook, etc.. all allow people all over the world to contribute and users to customize.

So our down-stream logistics companies are doing more value added services like kitting, labeling, testing, quality control, repairs, they are essentially run manufacturing operations right? Can they value add in the increasing world of track and trace requirements, or even create new businesses from it?



Economic Order Quantity and Minimum Order Quantity

We all know about economic order quantity (EOQ), which is a balance of fixed order cost and the cost of holding inventory.One however, may not be able to order exactly the economic order quantity all the time. We know that small changes to EOQ does not affect fixed and holding cost significantly, but holding cost depends on cost of product. Changing the minimum order quantity, or sometimes called order multiples (or other names) can reduce supply chain costs. My team came in 3rd! hurray! :)


http://www.themsj.com/around-ross/spotlight-on-the-tauber-institute-1.2596618


What is even more interesting it, should EOQ be calculated along the supply chain? Can we relate costs, lead time and the push-pull boundary for companies to differentiate themselves?



Wednesday, September 28, 2011

Don't Delete Your Old Forecasts and Actual Demand Information

Interesting models can be developed to compare forecasts and actual demand. We have talked about how to quantify and monetize better forecasts accuracy earlier. How about maximizing profit base on demand risks (again forecasts variance near or far from actual customer demand) and limited production capacity in multiple plants? especially one has high minimum order quantity (MOQ) and low cost, the other has low MOQ and high cost.

So our small businesses, you can show that your flexibility and quick changeovers improve profits for your customers.

Supermarket On Subway Wall

Do small businesses always need to rent space to sell? we all know we can have home offices, and sell stuff on the internet. How about setting up a supermarket on the wall of the train station for passengers to browse and buy food on their mobile phones?

Sunday, September 25, 2011

Cost Modeling Partnership Between MNCs and SMEs/SOHOs

What is the use of cost modeling?













How do we develop a cost model?










After we have establish the relationship, what can I control to improve?

















How do I compare whether the unit cost can be reduced with scale and utilization. Can I learn from countries/regions with higher labor cost, but are more productive? Yes! categorize cost into fixed and variable cost plot the below!

Method to Quantify Higher Profits From Better Forecasts

Much is being said about changing processes, reducing changeovers, setup times to reduce production lead times. But how do you quantify the change in profits through better forecast?

One way is to compare the standard deviation of forecast with actual sales when it was taking a long time. Use marginal contribution to allocate products as capacity, shelf space is always limited compare the profit using this approach with allocating products with more accurate forecast.

Don't forget that if you can aggregate purchasing, you can lock raw materials/supplies to speed up lead time dramatically. That's what Li and Fung do.

 

Relationship Between Utilization and Cycle Time for Multiple Product Processes

Small businesses thrive by moving faster than much bigger companies. They may not have scale in working on one product, so they probably work on more than one product, especially so in a transshipment hub like Singapore. The traditional approach is always to maximize utilization, but we all know increasing utilization to its limit always increases cycle time, or lead time dramatically. So how do we know where we stand for multiple products?
Below is an example of calculations to find utilization for 2 machines with multiple products.



Clearly from the plot below, we do not want full utilization.

How do we improve performance of a line/plant/process?
  1. Relate operational performance like WIP, Cycle Time, throughput and customer service to business level metrics like profits, cost, ROA, inventory turns etc… ask questions like whether inventory reduction will result in significant cost savings? Would cycle time reduction result in significant competitive advantage? Would throughput increase help generate significantly more revenue? Would improve customer service generate business over the long run?
  2. From a process point of view, always improve utilization first, then reduce variability, consider batching. The VUT spreadsheet mentioned earlier will help you understand its relationships and interdependencies.
  3. Consider structural changes like layout, pull mechanisms, including shifting the push/pull boundary. Pull mechanisms can dampen fluctuations in WIP/cycle time and feed bottlenecks more smoothly.

Friday, September 23, 2011

Are Full Containers Always More Cost-Effective?

It is also usual practice now for each of say, ten factories to ship full containers of its products to a consolidator who will unpack and repack all ten containers before shipping the assortment to the distribution centers. Moving one container from factory to factory and get each factory to fill just one tenth of the container, and then shipping it directly to the distribution center may be cheaper and likely to be faster, as the consolidator is eliminated altogether.

Tuesday, September 20, 2011

Cost Effective, High Speed High-Mix, Low-Volume Manufacturing; In Warehouses and Distribution Centers too.

High-Mix, Low-Volume manufacturing is always interesting. In fact, factory physics concepts are also very relevant to value-added activities in warehoures and distribution centres as well. How do we reduce changover and setup times for kitting, packing, assembly, quality control operations for different kinds of products? This is especially critical to Singapore where 80% of its cargo are transhipped. We need high value add and high velocity in our manufacturing and distribution operations.

For small and medium sized enterprises, managing variability can be tricky. How many times do one need to counsel a slower staff, how do we set standards without letting the team find better ways of doing things?

What is more important then, is to understand how inventory, time, capacity buffers interact with variability to find the optimal portfolio for your company.

Variability flows through the process, and a spreadsheet to understand gather process times, process time variability, machine availability, machine repair, machine failure times, batch size, yield, setup time, setup time variation and the costs associated can help companies refine their operations using inventory, capacity and time levers. What's more, if you have high-mix, low volume operations, you can find out how much your machines are utilized from doing different mixes of products. You can see how high utilization interacts with process variability and effective process time (VUT)



Visibility systems for responsiveness often minimizes inventory. We have to be very careful with this though. To minimize inventory and still be very responsive, one must have high capacity buffer.

These fundamental relationships are even more important with the enterprise resource planning, warehouse management systems, transportation management systems implementation.

Get the spreadsheet template at: https://sites.google.com/site/fastsupplychains/templates

Friday, September 9, 2011

Price War?

What do we when a competitor reduces its price drastically? Will you go into a price war? We should always build our business on a speed, flexibility, cost, service level combination frontier right.  If not, one way is to try to buy from the supplier that is offering the drastically low price and resell it :)  Another approach is to look at the other costs involved even if the product or service is cheaper. Higher inventory holding cost due to longer lead time? Higher quality inspection cost? The total cost for the customer may be in your favour.

Backhaul

Making use of space in trucks during backhaul routes for companies is really interesting. To the company, it is sunk cost and any company that they make during the backhaul is a bonus. There are already websites in US that shares available backhaul routes. Example: http://www.123loadboard.com/backhaul-freight/West-Virginia/Exchange/

Shall we start something from Singapore-Malaysia-Thailand?

We do not need to be rigid in the pick up and drop off locations. As long as it is along the route, a deal can be made :)

Monday, September 5, 2011

Value Added Services Webportal?

Is a webportal to improve operations value added services like customization, light manufacturing, kitting, repackaging, returns handling, repair useful?

It will be a webportal with simple examples in spreadsheets for companies to customize for their operations to improve quickly, and is scalable. Ubiquitous MS excel is used for examples. This allows data to be pulled from and uploaded to different ERP, WMS, TMS, and DBMSs. Categorized capabilities to meet focused needs along the supply chain, or in focused areas.

Do you think the webportal is useful?




Saturday, July 30, 2011

Social Media For Global Supply Chains

Social location updates to monitor supply chain cycle times for responsiveness, cost, flexibility analytics?

Besides linking material to information flow, bidirectional financial flows can also occur.

Your thoughts?

Monday, July 25, 2011

Supply Chain Solutions for Small Businesses

A mentor expounded on the need for a clear vision, mission, goals and objectives for a new supply chain/logistics startup

A clear in the vision, mission, goals and objectives is very crucial anchor in a new setup. The whole team needs to knows very clearly why we are here and what the goals are.

With clear goals, clear KPIs can be set and assigned to staff to meet the mission and vision. This is especially crucial for a new setup with funding from different agencies with different interests

It must also be consistent and defensible. Consistent internally, among funding agencies and industry. One way to do it is to have a clear one page document stating the vision, mission, goals and objectives to communicate clearly to the team. There will also be times when questions will be asked about the need for the setup and we must be able to state our position clearly.

Clear goals will help us focus and prioritize. A new setup of limited funding certainly cannot do everything. With so different funding agencies involved in the setup, there will definitely be conflicting interests. This reinforces the earlier point that the new setup should have clear, consistent goals from the onset.

Only when we are clear what we want to do, then we can go about identifying the gaps in skillsets and seek the right person to fill the post.

So what is the vision, mission, goals and objective for this blog?

The vision for this blog is to be an authority in industrial engineering applications across pharma, chemical and consumer supply chains.

Mission for this blog is to share practical industrial engineering concepts applicable to pharma, chemical and consumer supply chains. Why share? Because it is fun for me and I get to learn from everyone :)

Goals: To have 10 companies implement my spreadsheet templates to reduce cost/improve quality/increase responsiveness in the next 9 months. These industrial engineering applications will have an operational, tactical and strategic perspective for clear alignment with your company's vision.

Objectives: Share 10 excel templates and implementable ideas across pharma, chemical and consumer supply chains. The excel templates will be downloadable from google docs and will be inter-related.

I am now also inviting both large Multi-National Companies and Small and Medium Sized Enterprises to share what you need so that I can match needs.

What are your company's vision, mission, goals and objectives? What new capabilities do you need to support your work?  Let me know at edchan@umich.edu