How does optimiser calculate profit for profit maximisation

Hi Experts,
I have a basic question-
when we work on 'profit maximisation' how does the system calculate profits. As I understand the calculation is revenue- total cost. costs is what we define in the system. But how is the revenue calculated?
What it the logic where profit maximisation is selected over cost minimisation?
Regards
Manotosh

Hi Manotosh,
For answering the first part of your question, I am just copy pasting the F1 help for the field from Optimizer profile:
"Profit Maximization
Use
It is the optimizer's objective, when using either of the two possible options: cost minimization or profit maximization, to determine the most cost-effective solution based on the costs defined in Cost Maintenance.
If you choose Profit Maximization, the system interprets the Penalty for ND field (penalty costs for non-delivery) in the product master (tab page SNP 1) as lost profits. In this instance, the total profit achieved by a plan is calculated according to the following formula: Total of all delivered location products, multiplied by the penalty costs for non-delivery that have been defined for these location products, minus all the costs defined in the optimizer cost profile (such as production costs, storage costs and transportation costs). The total profit is displayed, when you run the optimizer in interactive planning within Supply Network Planning (on the Solutions tab page)."
For second part, someone who has worked on solution design in a project where Optimizer was used might possibly give a good answer. I am not very sure, though I can make a guess as follows:
You would go for cost minimization in a scenario where your requirement would be to minimize overall cost, even if it leads to non-fulfillment of requirement. Could be a scenario where e.g. lost sales are not very critical for you. e.g. products like generic bulbs, etc. On the other hand, where you want that the requirements fulfillment should also be one of the key objectives, you would go for profit maximization. This could be a case where brand plays a major role e.g. TV, costly gizmos, etc.
Hope someone else will correct me, or add to this.
Thanks - Pawan

Similar Messages

  • How does SAP calculate tax for employees who pay SFSS(Australia)?

    Hi,
        Good day. How does SAP calculate tax for employees who pay SFSS (Student Financial Supplement Scheme). The EE is under tax scale 7 - No Leave Loading. Please advise. Thank you.

    hai..
    check QTAX sub schema

  • How does one get points for articles

    how does one get points for articles

    You submit your article, it is reviewed by an SDN content manager and then published,  about a week after you should see some points for your efforts.  If not, contact [email protected]
    Regards,
    Rich Heilman

  • How does thw firm ware for the built in web cam on a pavilion G6 get reactivated or re-loaded?cc=US

    how does the firm ware for the built in web cam on a pavilion G6 get reactivated or re-loaded? I have been attempting to get this done all day. I have downloaded new drivers from HP, used the recovery manager etc and nothing seems to work. I have owned this HP pavilion G6 for a couple of months and am already sick of the problems I am having. Windows 7 and HP; what a great team!

    i m facing same problem.
    dont know how HP!! can Cheat Customers in India??
    i don't think they supply GOOD pieces to the 125 Million Country??!!

  • PR00 does not calculate / deleted for TANN in R/3 for CRM order - Free Good

    I hv done free good configuration both in R/3 and CRM.
    Main Category - TAN and Free good category - TANN
    Pricing for TANN = PR00 and ZFRE -100% discount
    When I see result in R/3 and CRM, it does populate PR00 and calculate ZFRE.
    While in Order creation in CRM it does calculated PR00 and ZFRE, on order save it replicates order in R/3 but in R/3 it does not calculate or retain PR00 & ZFRE value as a result I'm getting price log error in R/3 saying mandatory condition PR00 missing. Where as in CRM it does not impact calculate pricing.
    Note: I don't want to retain PR00 as a mandatory condition and I don't want to change my calculation. Is there any technical solution to achieve this.
    Thanks,
    Nilesh P.

    Hi Nilesh P,
    Have you set the parameter PRICINGTYPE to G in table SMOFPARSFA as per note 490932 - 'G' = Copy price components unchanged. If so then the only possibility is to debug the transfer to ERP as per note 656823 in order to determine where the condition value is initialized.
    I hope this helps.
    Kind regards,
    Vanessa.

  • How does full-text search for pdf files work?

    Hi there,
    Basically I can see my pdf file in the content server.. inside the pdf there's a piece of test that says: "Test's Sample" but when I do a search with that string the file gets filtered from the results.
    I think it has to do with the ' (single quote) being there because other text in the pdf works fine.. so I was wondering how does VDK store this full text? where? I'd like to see how it gets translated IF that's how it works with pdf files....
    Following advice from Re: Parse error with search query I tried doing the search by:
    Test\'s Sample
    Test`s Sample
    "Test's Sample"
    The database is db2 if that helps.. how can I fix this problem?

    Nevermind, I fixed it by changing the VDK filters (in case someone is looking for a solution too).
    Cheers,

  • How does Java structure memory for an object's members?

    I'm trying to figure out how Java structures/allocates memory for objects. (Yes this is implementation specific. I'm using the Oracle 1.7 runtime for this.) I did some work on this here and here and the results are confusing.
    First off, in both referenced links, when I allocated an array of objects, the equivalent of new Object[10000], it used 4 bytes per object. On a 32-bit system this makes perfect sense. But I'm on a 64-bit system so what's going on here?
    Is Java limited to a 32-bit address space even on 64-bit systems?
    Is Java limited to a 32-bit address space per array and each array object then has a pointer to where the elements are?
    Something else?
    Second, I compared the memory footprint of 8 booleans vs. a byte as the variables in a class. The 8 booleans requires 24 bytes/object or 3 bytes/boolean. The single byte approach requires 10 bytes/object.
    What is going on with 3 bytes/boolean? I would understand 4 (making each an int) and definitely 1 (making each a byte. But 3?
    And what's with expanding a byte to 10 bytes? I would understand 8 where it's expanding a byte to a native int (I'm on a 64-bit system). But what's with the other 2 bytes?
    And in the case of different ways to create a RGB class it gets really weird.
    For a class composed of 3 byte variables it uses 24 bytes/instance. Expensive but understandable as each uses an int.
    So I tried where each class is a single int with the RGB stored in parts of the int (using bit shifting). And it's still 24 bytes/instance. Why on earth is Java taking 3 ints for storage? This makes no sense.
    But the weirdest case is where the class has a single variable of "byte[] color = new byte3;" Note that the byte is allocated so it's not just a null pointer. This approach takes less memory than the other two approaches. How???
    Any guidance as to what is going on here is appreciated. I have a couple of classes that get allocated a lot and the flywheel pattern won't work (these objects have their values changed all over the place).
    And an associated question, does the order of declaring variables matter? Back in the old days when I did C++ programming, declaring "int, byte, int, byte" used 4 int's work of space while "int, int, byte, byte" used 3.
    thanks - dave

    This is a quadruple crosspost.

  • How does Requsition Charge account for Project Deliverables get populated?

    Hi All,
    I am creating deliverables from project management . However the charge account in the req wen this deliverable is imported to Puirchasing is incorrectly populated.
    How does this accounting take place. I have a customized Requisition Account generator however, this workflow is not invoked when trying to intiate Procurement or after running the requistion import process in purchasing module.
    The charge account seems to default from Organization Parameters in Inventory (This is mandatory account set for Average Costing Orgs).
    Please help. .

    Hi
    I assume your deliverable is an inventory item.
    When entering a requisition for inventory item, and the destination is Inventory the system is using the Materials Valuation account of the inventory organization (or the inventory cost group).
    If the requisition is for expense destination, then the account will be generated using the Account Generator customized workflow.
    Dina

  • Unable to regenerate /dev/rmt/0 drivers with cfgadm -c configure on Solaris 10 update 11 (1/13).  How does one do this for SAS HBA StorageTek Autoloader?

    How does one regenerate the /dev/rmt/0 when cfgadm -c configure <device> will not rebuild it?  Have attempted reboot -- -r, with modifing /kernel/drv/st.conf as well as /kernel/drv/sgen.conf.  Running on a SPARC T4-1 Solaris 10 updat3 11, (1/13).

    This has been resolved.  Getting the /etc/driver_aliases set correctly: # update_drv -d -i st; update_drv -d -i sgen; add_drv -m '* 0600 root sys' -i '"scsiclass,01" "scsiclass,08" wa' worked.  Making sure the st and sgen entries are in /etc/name_to_major were needed.  For the Simpana/CommVault WA drivers, in opt/simpana/WA/wa.conf with the name="wa" parent="fp" target=16 lun=0 fc-port-wwn="device's World Wide Number> added for each lun 0 to 7.  Then the touch /reconfigure; reboot worked.  First the c1::rmt/0 tape and c1::scsi/changer/<wwn> med-changer were mapped.  After modifying the minor_perm ('* 0600 root sys') and name_to_major entries, the WA CommValt entries , WA drivers showed up in cfgadm -al as c1::wa0  tape and c1::wa1  med-changer, only recognizable from CommVault.  Also had to update the SAS-2 HBA StoregTek Autoloader driver with patch 145648-05. Solaris 10 update 11 (1/13) comes with 145648-03.  In our particular case, we found cfgadm -al mapped SAS-2 HBA to c1 using the single mini-sas 6gb connector cable, where it mapped to c7 with the four tail connector.

  • How does OOB breadcrumbs work for multisite environment

    Hi
    I am currently using CatalogNavHistory and CatalogNavHistoryCollector to display breadcrumbs in my catalog pages.
    My doubt is with ATG10.1 we are using multisite environment for our project. So one category will be part of more than one site.
    So how does OOB CatalogNavHistory and CatalogNavHistoryCollector handle the breadcrumbs for these scenario?
    Thanks
    Ajay

    Dear KK,
    IF You want to use the EURO currency as transaction currency and Your Local currency is Australian Dollar, the System correectly will take the Exchange rate EURX.
    EURO is used for the old european currencies
    EURX for all the other foreign currencies
    EMU indicator that means European Monetary Union has to be flagged if the referency currency is EUR.
    I hope this can help You.
    Mauri

  • How does the delta works for changes made to Sales Document

    Hi Experts,
    How does delta for 2LIS_11_VAITM for the changes made to Sales Order Header.....
    Example:
    If a sales order had 10 line items any changes at the item level are captured by 2LIS_11_VAITM
    Could you please update me on how the changes made at Sale Order Header level like Change of contract Date...etc
    Does those changes are captured by 2LIS_11_VAITM.......
    Please update

    Hi,
    SAP written lots of programs inside the Extractor, so it is not possible to tell how it will work, so you goto RSA2 in ecc and give the datasource and click on display and see the Function module and debug it you will know.
    Thanks
    Reddy

  • How does the WF trigger for a PO

    Hi!
    The buyer creates a PO in ME21N, and completes release 00. Release 01 happens through workflow for PO release.
    My question is, once the buyer completes 00 release, how does the Workflow trigger? Is there any event that triggers the PO release WF? If yes then where can I see this information?
    Thanks,
    Anwar.

    go into SPRO
    Materials Management|Purchasing|Purchase Order|Release Procedure for Purchase Orders|Define Release Procedure for Purchase Orders
    <b>Release Groups
    <i><b>Release Codes
    </b></i> this one decide if you should trigger the workflow or not.
    Release indicator
    <i>Release Strategies</i>
    Here you setup how the release should work </b>
    Workflow
    When this is done the following template should start. WS20000075
    Hope this helps
    best regards erik

  • How does select stmt with for all entries uses Indexes

    Hello all,
    I goes through a number of documents but still confused how does select for all entries uses indexes if fields are not in sequences. i got pretty much the same results if i take like two cases on Hr tables HRP1000 and HRP1001(with for all entries based upon hrp1000). Here is the sequence of index fields on hrp1001 (MANDT, OTYPE, OBJID, PLVAR, RSIGN, RELAT, ISTAT, PRIOX, BEGDA, ENDDA, VARYF, SEQNR). in second case objid field is in sequence as in defined Index but i dont see significant increase in field even though the number of records are around 30000. My question is does it make a differrence to use field sequence (same as in table indexes) in comparison to redundant field sequence (not same as defined in table indexes), secondly how we can ge tto know if table index is used in Select for entries query i tried Explain in ST05 but its not clear if it uses any index at all in hrp1001 read.
    here is the sample code i use to get test results.
    test case 1
    REPORT  zdemo_perf_select.
    DATA: it_hrp1000 TYPE STANDARD TABLE OF hrp1000 WITH HEADER LINE.
    DATA: it_hrp1001 TYPE STANDARD TABLE OF hrp1001 WITH HEADER LINE.
    DATA: it_hrp1007 TYPE STANDARD TABLE OF hrp1007 WITH HEADER LINE.
    DATA: it_pa0000 TYPE STANDARD TABLE OF pa0000 WITH HEADER LINE.
    DATA: it_pa0001 TYPE STANDARD TABLE OF pa0001 WITH HEADER LINE.
    DATA: it_pa0002 TYPE STANDARD TABLE OF pa0002 WITH HEADER LINE.
    DATA: it_pa0105_10 TYPE STANDARD TABLE OF pa0105 WITH HEADER LINE.
    DATA: it_pa0105_20 TYPE STANDARD TABLE OF pa0105 WITH HEADER LINE.
    DATA: t1 TYPE timestampl,
          t2 TYPE timestampl,
          t3 TYPE timestampl 
    SELECT * FROM hrp1000 CLIENT SPECIFIED  INTO TABLE it_hrp1000 bypassing buffer
                WHERE mandt EQ sy-mandt AND
                      plvar EQ '01' AND
                      otype EQ 'S'AND
                      istat EQ '1' AND
                      begda <= sy-datum AND
                      endda >= sy-datum AND
                      langu EQ 'EN'.
    GET TIME STAMP FIELD t1.
    SELECT * FROM hrp1001 CLIENT SPECIFIED INTO TABLE it_hrp1001 bypassing buffer
                FOR ALL ENTRIES IN it_hrp1000
                 WHERE mandt EQ sy-mandt AND
                        otype EQ 'S' AND
    *                    objid EQ it_hrp1000-objid and
                        plvar EQ '01' AND
                        rsign EQ 'B' AND
                        relat EQ '007' AND
                        istat EQ '1' AND
                        begda LT sy-datum AND
                        endda GT sy-datum and
                        sclas EQ 'C' and
                        objid EQ it_hrp1000-objid.
    *                    %_hints mssqlnt 'INDEX(HRP1001~0)'.
    *delete it_hrp1001 where sclas ne 'C'.
    GET TIME STAMP FIELD t2.
    t3 = t1 - t2.
    WRITE: 'Time taken - ', t3.
    test case 2
    REPORT  zdemo_perf_select.
    DATA: it_hrp1000 TYPE STANDARD TABLE OF hrp1000 WITH HEADER LINE.
    DATA: it_hrp1001 TYPE STANDARD TABLE OF hrp1001 WITH HEADER LINE.
    DATA: it_hrp1007 TYPE STANDARD TABLE OF hrp1007 WITH HEADER LINE.
    DATA: it_pa0000 TYPE STANDARD TABLE OF pa0000 WITH HEADER LINE.
    DATA: it_pa0001 TYPE STANDARD TABLE OF pa0001 WITH HEADER LINE.
    DATA: it_pa0002 TYPE STANDARD TABLE OF pa0002 WITH HEADER LINE.
    DATA: it_pa0105_10 TYPE STANDARD TABLE OF pa0105 WITH HEADER LINE.
    DATA: it_pa0105_20 TYPE STANDARD TABLE OF pa0105 WITH HEADER LINE.
    DATA: t1 TYPE timestampl,
          t2 TYPE timestampl,
          t3 TYPE timestampl 
    SELECT * FROM hrp1000 CLIENT SPECIFIED  INTO TABLE it_hrp1000 bypassing buffer
                WHERE mandt EQ sy-mandt AND
                      plvar EQ '01' AND
                      otype EQ 'S'AND
                      istat EQ '1' AND
                      begda <= sy-datum AND
                      endda >= sy-datum AND
                      langu EQ 'EN'.
    GET TIME STAMP FIELD t1.
    SELECT * FROM hrp1001 CLIENT SPECIFIED INTO TABLE it_hrp1001 bypassing buffer
                FOR ALL ENTRIES IN it_hrp1000
                 WHERE mandt EQ sy-mandt AND
                        otype EQ 'S' AND
                        objid EQ it_hrp1000-objid and
                        plvar EQ '01' AND
                        rsign EQ 'B' AND
                        relat EQ '007' AND
                        istat EQ '1' AND
                        begda LT sy-datum AND
                        endda GT sy-datum and
                        sclas EQ 'C'." and
    *                    objid EQ it_hrp1000-objid.
    *                    %_hints mssqlnt 'INDEX(HRP1001~0)'.
    *delete it_hrp1001 where sclas ne 'C'.
    GET TIME STAMP FIELD t2.
    t3 = t1 - t2.
    WRITE: 'Time taken - ', t3.

    Mani wrote:
    Thank you for your answer, its very helpful but i am still nor sure how does parameter rsdb/max_blocking_factor affect records size.
    Hi,
    The blocking affects the size of the statement and the memory structures for returning the result.
    So if your itab has 500 rows and your blocking is 5, the very same statement will be executed 100 times.
    Nothing good or bad about this so far.
    Assume, your average result for an inlist 5 statement is 25 records with an average size of 109 bytes.
    You average result size will be 2725 byte plus overhead which will nearly perfectly fit into two 1500 byte ethernet frames.
    Nothing to do in this case.
    Assume your average result for an inlist 5 statement is 7 records with an average size of 67 bytes.
    You average result size will be ~ 470 byte plus overhead which will only fill 1/3 of a 1500 byte ethernet frame.
    In this case, setting the blocking to 12 ... 15 will give you 66% network transfer performance gain,
    and reduces the number of calls to the DB by 50%, giving additional benefit.
    Now this is an extreme example. The longer the average row length is, the lower will be the average loss in the network.
    You have the same effects in memory structures, but on that layer you are fighting single micro seconds instead of
    hundreds of these, so in real life it is rarely measurable.
    Depending on table-statistics, oracle might decide for short inlists to use a concatanation instead of an inlist.
    This is supposed to be more costy, but I never had a case where I could proove a big difference.
    Values from 5 to 15 for blocking seem to be ok for me. If you have special statements in customer coding,
    it #might# be benefitial to do the mentioned calculations and do some network tracing to see if you can squeeze your
    network efficiency by tuning the blocking.
    If you have jumbo frames enabled, it might be worth to be analyzed as well.
    If you are only on a DB-CI system that is loopback connected to the DB, I doubt there might be a big outcome.
    Hope this helps
    Volker

  • HT2534 How does one get reimbursed for an app that has been immediately deleted after download and open?

    I downloaded an app that cost $7.99 and immediately realized that it was not functional the way I understood it to be. I deleted the app and now I wqould like to be reimbursed.
    How does one go about getting that accomplished?
    Thanks - George

    Dear telwow,
    Apple did not do anything to solve this problem, they said I shoud apply to ITunes which I did. However, ITunes in Belgium does not even have a customer friendly call center, and they reply with standard info if you apply by e-mail which have no relevance to my problem. As I do not have hours to spend on the phone, I tasked my secretary to call Itunes many times. In the end, she found someone to look into the matter which took months.
    Simultaneously, I applied to VISA through my bank for fraud investigation. I had to cancel my credit card. In the end, VISA paid my money back and they said they will deal with ITunes. I received a new credit crad from VISA with a new number. I tried to use this new card in the ITunes but ITunes did not accept my card because in their system my name has been registered as if I have commited the fraud! This was again outrageus! I have complained about this to both Belgium and the USA Apple/ITunes, but no satisfactory answer was given. I am now using my wife's credit card to buy smth I want in ITunes. But because of my very unpleasant experience I am not buying much on ITunes store. I am also considering to quit Apple all together. This is unfortunate because I have been an apple fan until I had this experience.
    Many thanks for sharing your problem.
    Mustafa

  • How does genius pick songs for mixes?

    Generally, Genius works really well with popular stuff but then you pick a World song or a Jazz song and hello! All **** breaks loose.
    For example - I pick Allen Toussaint's "Long, Long Journey" and the next song in the line-up is Missy Elliott "Work It." The only music similar to Amaral is apparently Latin or any World (Ana Gabriel, Juanes, Angelique Kidjo, Cesaria Evora, Sergio Mendes, Seu Jorge, etc). The best 'mix' I ever got though was with Dusty Springfield - Metallica, White Zombie, Feeder, Elastica and one Dionne Warwick song. Wow.
    How does Genius work? Does it really look at other user's music selection and decide, "well, those artists are black so they can go together. They speak a different language so they can go together?" Anyone know how to improve the system?

    I'm also curious about the Genius Mixes too. It seems to create Mixes only based on my sync'd songs; not my entire library. I just want to make sure this is how Genius is supposed to work or if there are configuration settings for it.

Maybe you are looking for