Pay Breakdown

Discussion in 'Shapeways Shops' started by mctrivia, Jun 22, 2011.

  1. mctrivia
    mctrivia Well-Known Member
    I like the new pay breakdown on https://www.shapeways.com/myshop but the numbers are not correct.

    Compared with the order overview

    Lifetime Earnings=Markup-Fees ok that is correct
    Unpaid Earnings though only includes all unsetled earnings up to the 15th. If this is a calculation of how much you will pay next month that is fine but then you should rename it and add a 3rd column say "Pending Earnings" or some better name.

    That way I should quickly be able to see that your paypal payments in the past are equal to lifetime earnings - the other 2 columns
     
    Last edited: Jun 22, 2011
  2. Magic
    Magic Well-Known Member
    Note that the Unpaid Earnings also include the cancelled orders, which is misleading.
     
  3. mctrivia
    mctrivia Well-Known Member
    I decided to write a program to analyse the excel sheet and give breakdown of info. Maybe shapeways will implement when done but I doubt it.
     
  4. mctrivia
    mctrivia Well-Known Member
    ok so I can't read excel files irectly because I run a linux system and it is dreadfully slow to open the excel files. So to use this system you must first save the file as a CSV file. To do so open in excel goto save as and select CSV from the file type list.

    Order Computer

    To see the info easier look at the source codes. At present it does nothing special but do a print_r dump of the stats array. Let me know if there are any more stats I should get and I will add. I will eventually write custom output script to make nice looking output.

    I do not keep the uploaded file it is processed and discarded.

    Code:
    <form enctype="multipart/form-data" method="POST">
    CSV File: <input name="uploadedfile" type="file" /><br />
    <input name="submit" type="submit" value="Upload File" />
    </form>
    
    <?php
    if (!isset($_POST['submit'])) {exit;}
    if (($handle = fopen($_FILES['uploadedfile']['tmp_name'], "r")) !== FALSE) {
    
      //ignore first 3 lines
      fgetcsv($handle);
      fgetcsv($handle);
      fgetcsv($handle);
    
      //get sales data
      $sales=array();
      while (($data = fgetcsv($handle)) !== FALSE) {
    
        //get useful parts
        $d['order_data']=$data[0];
        $d['title']=$data[1];
        $d['profit']=(substr($data[5],1)-substr($data[9],1));
        $d['order_status']=$data[11];
        $d['payment_status']=$data[12];
        $d['order_number']=$data[15];
        $d['material']=$data[16];
    
        //store values
        $sales[]=$d;
      }
    
      //compute stats
      $stats=array();
      foreach ($sales as $sale) {
        if ($sale['order_status']=='canceled') {
    
          //canceled order
          $stats['canceled_material_count'][$sale['material']]++;
          $stats['canceled_material_profit'][$sale['material']]+=$sale['profit'];
        } else {
    
          //orders that are good
          $stats['material_count'][$sale['material']]++;
          $stats['material_profit'][$sale['material']]+=$sale['profit'];
          if ($sale['payment_status']=='Settled') {
            $stats['paid']+=$sale['profit'];
          } else {
            $stats['unpaid']+=$sale['profit'];
          }
          $stats['model_count'][$sale['title']]++;
        }
    
      }
    
    
      //compute percents
      $sum=array_sum($stats['material_count']);
      foreach ($stats['material_count'] as $material=>$value) {
        $stats['material_count_percent'][$material]=100*$value/$sum;
      }
      $sum=array_sum($stats['material_profit']);
      foreach ($stats['material_profit'] as $material=>$value) {
        $stats['material_profit_percent'][$material]=100*$value/$sum;
      }
      $sum=array_sum($stats['canceled_material_count']);
      foreach ($stats['canceled_material_count'] as $material=>$value) {
        $stats['canceled_material_count_percent'][$material]=100*$value/$sum;
      }
      $sum=array_sum($stats['canceled_material_profit']);
      foreach ($stats['canceled_material_profit'] as $material=>$value) {
        $stats['canceled_material_profit_percent'][$material]=100*$value/$sum;
      }
    
    
      print_r($stats);
    
      //close file
      fclose($handle);
    }
    
    ?>
     
  5. LincolnK
    LincolnK Member
    I am confused by my page.

    It shows $0 unpaid earnings, but in the paid part it totals more than I have been paid.

    I am assuming that on the 15th of next month, it will go into my paypal account, but until then, shouldn't it show that money in the unpaid part?

    Lincoln
     
  6. aegidian
    aegidian Member
    I too am finding the summaries of unpaid earnings and lifetime earning on the /myshop page confusing and not very useful.

    It's especially disconcerting to see the unpaid earnings figure decrease when an order is cancelled. It's understandable when I consider that order to be immediately 'settled'. But completed orders (even when shipped) don't seem to be settled anywhere near as quickly, despite Shapeways clearly having received payment and having fulfilled the order.

    Perhaps someone can give a clear explanation of when an order is considered to be 'settled'. Please.

    Personally, I would prefer to see a proper financial summary of my shop's accounts, including all payments made, recieved and pending. Perhaps on a /myaccount page? Please.
     
  7. stonysmith
    stonysmith Well-Known Member Moderator
    "Settled" refers to the status of the markup payment, not of the order. If an order is cancelled, then it is immediately "Settled". Otherwise, once the markup is transfered to your PayPal account (on the 15th), then it becomes "Settled".

    Remember.. you have to have a minimum of $30 in your pending payments before you'll get a payment on the 15th.

    (unless the rules have recently changed)
     
    Last edited: Aug 13, 2011
  8. aegidian
    aegidian Member
    Ah!
    Thank you.

    Then the 'unpaid earnings' figure on the /myshop page is clearly extraordinarily inaccurate (or out of date) given that the orders I have recorded as 'shipped' but 'Unsettled' amount to several times the figure displayed.

    ADDENDUM (after reading payment terms and conditions):
    Unless that it, the 'unpaid earnings' figure only takes into account orders that aren't 'frozen', ie. made more than 30 days ago, in which case it would seem to be about right. Given that is the case then the figure given is far from intuitive - and I contend, not very useful. I'd like to see more figures, including 'frozen' pending payments along with a total of payments already made, so that the figures add up nicely.
     
    Last edited: Aug 13, 2011
  9. 28396_deleted
    28396_deleted Member
    In January 2011 i decided to add up all my markups for 2010 , without canceled orders, only the "shipped" ones - i just felt something is wrong with my PayPal payments... it turned out i was missing over $1200 (!) for 2010..

    I emailed support, accounting - no reply for almost 3 weeks
    (i assumed because of the move to N.Y)

    I then Bcc'ed every one i can think of including the CEO , Duann, Bart etc saying if i dont get a reply i will close my shop.

    Bart asked me to call him, we talked , i explained the discrepancy i found thinking i must have made an error on my part, no way someone on shapeways was omitting hundreds of dollars from my payments over 3 pay periods...

    When i realized i wasn't mistaken..i felt like being stubbed in the back.


    Few days later i received 2 payments that concluded this unfortunate incident..


    Since then i must admit i have a bit of distrust issues with my logged sales.

    There are still sales bugs in the system - particularly with co-creator sales.

    I've emailed Ben about it explaining my "history" - i had 2 co creators which i fulfilled yet were not logged in the XSL file .. unfortunately few days later i found out he left shapeways.


    Right now i have a co-creator sale on my XSL file since July 30th:

    30-07-2011 Joint Stars 1 so009569 $5.50 $5.50 $0.00 $0.19 $0.19 $0.00 waiting for finishing Unsettled 57532 White Strong & Flexible


    Notice its on "waiting for finishing" status ... but i received only 1 co-creator link for that model on that day ,which i fulfilled, and it's status is now "shipped".

    I hope someone reads this post and look into it seriously.


    Oh.. and i am here to stay - i love shapeways , designing and 3D printing - its a great hobby of mine and who knows could be also lucrative in the future - perhaps by opening a dedicated website for my designs and having shapeways as the manufacturer much like what many prominent designers on shapeways do.























     
  10. Magic
    Magic Well-Known Member
    I never had any issue with the payments.
    The only problem for me is that the two figures are not very easy to understand (and probably we need a third figure).
    Currently, from what I understand:
    - Lifetime Earnings are the sum of Markups minus Markup fees for all the order that are not in the "Canceled" Order status.
    - Unpaid Earnings are the sum of Markup minus Markup fees for all the order in the "Unsettled" Payment Status until the 15th of the previous month (15/07 until today): this is the next amount of money that will be paid to you the 15 of this month (today) if it exceeds $30.

    So currently Lifetime Earnings includes money already paid, money still to be paid and money that perhaps will never be paid because some orders could be cancelled.

    I would suggest to split the earnings into 3 parts:
    - Already Paid Earnings: what has already be paid from the beginning
    - Next Payment Earnings: what potentialy will be paid for the next payment (if no order is canceled and if the amount is more than $30)
    - Pending Earnings: all the potential earnings (if no order is canceled) from the 15th of the month before to today.

    In this way, the 15th of each month:
    - Already Paid Earning are increased of the Next Payment Earnings from the month before.
    - Next Payment Earning takes the value of the Pending Earning of the month before
    - Pending Earnings are set to 0

    Does that makes (more) sense?