Minimum order quantity

classic Classic list List threaded Threaded
18 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Minimum order quantity

grampajohn
Administrator
Dear colleagues -

During the qualifying round, we have seen some games with huge numbers of invalid orders for the wholesale market. This is sometimes causing the server to choke up, which means games have to be re-started. It would be very helpful if your brokers would avoid submitting orders for quantities less than 10 kWh. Wholesale market orders for less than 10 kWh are rejected (this limit has been in place for at least the last four years), but still must be handled by the server.

Thanks -

John
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Minimum order quantity

Porag
Hi John,

In the broker code, while sending bids/asks

Order order = new Order(broker.getBroker(), timeslot, neededEnergy, limitPrice);
broker.sendMessage(order);

Does the unit of "neededEnergy" in MWh or KWh?

Can you also please provide the javadoc url of the sample broker?

Thanks and best regards,
Porag
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Minimum order quantity

grampajohn
Administrator
Porag wrote
In the broker code, while sending bids/asks

Order order = new Order(broker.getBroker(), timeslot, neededEnergy, limitPrice);
broker.sendMessage(order);

Does the unit of "neededEnergy" in MWh or KWh?
The units in orders and other messages related to the wholesale market are in MWh.
Can you also please provide the javadoc url of the sample broker?
For some reason the jenkins setup at Minnesota is not generating javadocs correctly - the pages are blank (issue #875). I'll try to find time to look into that. In the meantime, you can always run mvn javadoc:javadoc in your broker to generate a local copy. The result shows up in target/site/apidocs.

John
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Minimum order quantity

SPOT
This post was updated on .
Hi John,

I am trying to debug the log and trying to understand where I am loosing money. My broker is doing really poor. From the log I am trying to sum up all the costs and gains and at the very end of the simulation I want to see if that matches with the cashposition of the broker. I am trying to understand how I am loosing money actually.

I wrote these handlers:

1. MarketTransaction (here to get the money for one time slot I am multiplying abs(mt.getMWh()) with mt.getPrice())
2. BalancingTransaction (bt.getCharge())
3. TariffTrasanction (tt.getCharge())
4. BankTransaction(bt.getCharge())
5. DistributionTransaction(dt.getCharge())

Is there any other hanlders do I need to consider or I missed? But I am facing some problem to do this. The numbers (cashposition & netbalance calculated by me) are not matching. Can you please help me with this? I have sent you an email(at jcollins@cs.umn.edu) regarding this attaching the java file.

Another quick question, how can I extract what kind of tariffs have been published in the game by other brokers from state log file?

Eagerly waiting for your response.

Thanks
Porag
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Minimum order quantity

grampajohn
Administrator
Hello, Porag -

There is one other transaction type, new this year, described in the spec: CapacityTransaction. Other than that, your list looks complete to me.

Cheers -

John
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Minimum order quantity

Porag
Thank you John. That really helped. I can see that I am loosing a lots of money in capacity transaction. I have read the specs. It says broker can offer tariffs for controllable capacity. Can you please explain how I can do this. Currently my broker focuses on the consumption based tariffs only. Eagerly waiting for your reply.

Thanks
Porag
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

AW: Minimum order quantity

turban

Hi Porag,

 

If you want to use controllable capacities you have to offer publish “BalancingOrder”s in Order to do  that you have to follow these simple steps:

(1)    Publish a tariff of powertype  or controllable capacities  (e.g. “INTERRUPTIBLE_CONSUMPTION” or “STORAGE”)

(2)    After you have published a Tariff you can publish a BalancingOrder for this tariff

(3)    You can check if a BalancingOrder  was exercised  by using a handler method for the BalancingControlEvent message.

You can find examples for using such a tariffs and BalancingOrders in the sample broker.

 

But I am not sure if these will help you reducing your “high” peak demand costs. Because BalancingOrder (as the names states) are used for balancing purposes. I don’t think that they are controlled when  the overall demand is high. But I might be wrong.

 

Cheers,

Tobias

 

Von: Porag [via Power TAC Developers] [mailto:ml-node+[hidden email]]
Gesendet: Freitag, 17. Juni 2016 09:35
An: Tobias Urban <[hidden email]>
Betreff: Re: Minimum order quantity

 

Thank you John. That really helped. I can see that I am loosing a lots of money in capacity transaction. I have read the specs. It says broker can offer tariffs for controllable capacity. Can you please explain how I can do this. Currently my broker focuses on the consumption based tariffs only. Eagerly waiting for your reply.

Thanks
Porag


If you reply to this email, your message will be added to the discussion below:

http://power-tac-developers.975333.n3.nabble.com/Minimum-order-quantity-tp4026243p4026262.html

To start a new topic under Power TAC Developers, email [hidden email]
To unsubscribe from Power TAC Developers,
click here.
NAML

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: AW: Minimum order quantity

grampajohn
Administrator
turban wrote
But I am not sure if these will help you reducing your "high" peak demand costs. Because BalancingOrder (as the names states) are used for balancing purposes. I don't think that they are controlled when  the overall demand is high. But I might be wrong.
There are two straightforward ways to manage peak demand, methods that are also used in the real world. The first is to offer a tariff for INTERRUPTIBLE_CONSUMPTION and then curtail it when you predict a peak in demand. Keep in mind that your goal is to minimize the contribution of your portfolio to overall peak demand, not the peak in demand for a particular customer, or for your portfolio. You can interrupt demand for an interruptible customer by issuing EconomicControlEvent messages against a specific tariff. That will curtail usage among subscribers to that tariff. When you issue an ECE, you need to anticipate some level of "rebound" in the following 1-2 timeslots.

The second way to manipulate customer usage involves time-of-use or dynamic-price tariffs that set higher prices for periods when you anticipate peaks. Like curtailment, TOU tariffs can have the effect of creating new demand peaks if they are widely used.

Does this help?

John
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

AW: AW: Minimum order quantity

turban

Hi John,

I am doing some testing with the “EconomicControlEvent” and I have some questions about them. If we look at this code segment:

EconomicControlEvent eve = new EconomicControlEvent(spec, 0.3, timeslot);

DevLogger.systemOut(DevLogger.LOG_TARIFF, "EconomicControlEvent at " + (timeslot % 24) + " (" + timeslot + ")");

this.brokerContext.sendMessage(eve);

 

Output: EconomicControlEvent at 7 (391)

 

I assume that the event is used once in TS 391 (7:00 in the simulation time).

 

Here are my questions:

 

(1)  I have a question concerning the “curtailmentRatio. Is the ratio used to reduce the usage of the customer(group) by that amount or to that amount? Will customers subscribed to the tariff use 30% of their “normal” usage or will they use 70% (1.0-0.3) of the “normal” usage?

 

(2)  Is there any connection between the “curtailmentRatio” of a EconomicControlEvent and the “withMaxCurtailment” of a rate? Once you mentioned that is currently ignored. Is that correct?

 

(3)  I also didn’t see any evidence whatsoever if the event was exercised not in the server log or client log. I think this is needed on the brokers side to forecast the customers usage.

 

Cheers,

Tobias

 

 

 

 

Von: grampajohn [via Power TAC Developers] [mailto:ml-node+s975333n4026264h31@n3.nabble.com]
Gesendet: Freitag, 17. Juni 2016 15:43
An: Tobias Urban <[hidden email]>
Betreff: Re: AW: Minimum order quantity

 

turban wrote

But I am not sure if these will help you reducing your "high" peak demand costs. Because BalancingOrder (as the names states) are used for balancing purposes. I don't think that they are controlled when  the overall demand is high. But I might be wrong.

There are two straightforward ways to manage peak demand, methods that are also used in the real world. The first is to offer a tariff for INTERRUPTIBLE_CONSUMPTION and then curtail it when you predict a peak in demand. Keep in mind that your goal is to minimize the contribution of your portfolio to overall peak demand, not the peak in demand for a particular customer, or for your portfolio. You can interrupt demand for an interruptible customer by issuing EconomicControlEvent messages against a specific tariff. That will curtail usage among subscribers to that tariff. When you issue an ECE, you need to anticipate some level of "rebound" in the following 1-2 timeslots.

The second way to manipulate customer usage involves time-of-use or dynamic-price tariffs that set higher prices for periods when you anticipate peaks. Like curtailment, TOU tariffs can have the effect of creating new demand peaks if they are widely used.

Does this help?

John


If you reply to this email, your message will be added to the discussion below:

http://power-tac-developers.975333.n3.nabble.com/Minimum-order-quantity-tp4026243p4026264.html

To start a new topic under Power TAC Developers, email [hidden email]
To unsubscribe from Power TAC Developers,
click here.
NAML

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: AW: AW: Minimum order quantity

grampajohn
Administrator
Hello, Tobias,
turban wrote
I am doing some testing with the "EconomicControlEvent" and I have some questions about them. If we look at this code segment:
EconomicControlEvent eve = new EconomicControlEvent(spec, 0.3, timeslot);
DevLogger.systemOut(DevLogger.LOG_TARIFF, "EconomicControlEvent at " + (timeslot % 24) + " (" + timeslot + ")");
this.brokerContext.sendMessage(eve);

Output: EconomicControlEvent at 7 (391)

I assume that the event is used once in TS 391 (7:00 in the simulation time).
Correct
Here are my questions:

(1)  I have a question concerning the "curtailmentRatio. Is the ratio used to reduce the usage of the customer(group) by that amount or to that amount? Will customers subscribed to the tariff use 30% of their "normal" usage or will they use 70% (1.0-0.3) of the "normal" usage?
They will use 70% (30% is curtailed). The ratio specified in the Rate is a commitment to the customer limiting the impact of curtailment on their welfare.
(2)  Is there any connection between the "curtailmentRatio" of a EconomicControlEvent and the "withMaxCurtailment" of a rate? Once you mentioned that is currently ignored. Is that correct?
Yes. The curtailment specified in the ECE is truncated, if necessary, to the ratio specified in the rate.

(3)  I also didn't see any evidence whatsoever if the event was exercised not in the server log or client log. I think this is needed on the brokers side to forecast the customers usage.

You should be able to see the effect in the trace log. For each active subscription, in each timeslot, there should be a TariffSubscription: usePower message. The curtailment is the difference between the "usePower" quantity and the "actual" quantity.

Note that for storage-type customers, you can specify negative curtailment ratios and force them to use more energy in the current timeslot (down-regulation), which presumably will reduce their loads in subsequent timeslots. This should allow you to "flatten" potential demand peaks on either side.

Does this help?

John
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: AW: AW: Minimum order quantity

Porag
Thank you very much Tobias and John. Your comments made lots of things clearer.

I want to publish TOU tariffs but I couldn't figure out the logic here in the sample broker. Can anyone please help me with this? Suppose I want to charge higher in some specific moment of a day. How can I add specific rates for those specific hours?

Best Regards,
Porag
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

AW: AW: AW: Minimum order quantity

turban

Hi Porag,

 

first you need a TariffSpecification.

 

TariffSpecification specTOU = new TariffSpecification(brokerContext.getBroker(), PowerType.CONSUMPTION);

 

Than you can add different rates to the tariff

 

//Applies from 0:00-11:59

Rate touRate1= new Rate();

touRate1.withDailyBegin(0);

touRate1.withDailyEnd(12);

touRate1.withValue(-0.10); //price for this time

 

//Applies from 12:00-23:59

Rate touRate2= new Rate();

touRate2.withDailyBegin(12);

touRate2.withDailyEnd(0);

touRate2.withValue(-0.20); //price for this time

 

specTOU.addRate(touRate1);

specTOU.addRate(touRate2);

 

I hope this helps

 

Von: Porag [via Power TAC Developers] [mailto:ml-node+[hidden email]]
Gesendet: Mittwoch, 22. Juni 2016 10:24
An: Tobias Urban <[hidden email]>
Betreff: Re: AW: AW: Minimum order quantity

 

Thank you very much Tobias and John. Your comments made lots of things clearer.

I want to publish TOU tariffs but I couldn't figure out the logic here in the sample broker. Can anyone please help me with this? Suppose I want to charge higher in some specific moment of a day. How can I add specific rates for those specific hours?

Best Regards,
Porag


If you reply to this email, your message will be added to the discussion below:

http://power-tac-developers.975333.n3.nabble.com/Minimum-order-quantity-tp4026243p4026278.html

To start a new topic under Power TAC Developers, email [hidden email]
To unsubscribe from Power TAC Developers, click here.
NAML

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: AW: AW: AW: Minimum order quantity

Porag
Thank you very much Turben. I was able to apply TOU tariffs. I can see that we have two features for altering an tariff. One is revoking and another is (new one) called adjusting tariffs. Can you please tell me what is the difference between these two?

Thanks
Porag
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

AW: AW: AW: AW: Minimum order quantity

turban

Porag-

 

I am not sure I get your problem.

You can _not_ alter a tariff that was published. If you want to get rid of a tariff you can revoke it (see example code in the sample broker). You can also specify that a tariff that you publish supersedes and old tariff. Customers that have been in the tariff will evaluate the superseding tariff (I am not 100% sure about the exact reevaluation process but it is explained in the game specification).

 

I hope this helps.

 

Cheers,

Tobias

 

Von: Porag [via Power TAC Developers] [mailto:ml-node+[hidden email]]
Gesendet: Donnerstag, 23. Juni 2016 09:14
An: Tobias Urban <[hidden email]>
Betreff: Re: AW: AW: AW: Minimum order quantity

 

Thank you very much Turben. I was able to apply TOU tariffs. I can see that we have two features for altering an tariff. One is revoking and another is (new one) called adjusting tariffs. Can you please tell me what is the difference between these two?

Thanks
Porag


If you reply to this email, your message will be added to the discussion below:

http://power-tac-developers.975333.n3.nabble.com/Minimum-order-quantity-tp4026243p4026283.html

To start a new topic under Power TAC Developers, email [hidden email]
To unsubscribe from Power TAC Developers, click here.
NAML

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: AW: AW: AW: AW: Minimum order quantity

Porag
Yes, I know about revoking. What I am trying to say is that I saw in the new 2016 powertac specification (at page 6), 2 new points have been added..

1. Adjust prices (customers): Adjust prices for existing tari ffs, if tari ff terms allow it.

2. Curtail demand (customers:) For those customers who have subscribed to tariff s that allow
for curtailment, brokers may exercise curtailment to manage overall demand or to reduce
demand when wholesale prices are high.

So (for point 1) I was thinking, if there is a new feature for brokers to adjust their tariff prices without revoking it. I don't have the javadoc, so I am unable to see if there is such features exists or not for 1.3.2 broker version.

Thanks
Porag

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

AW: AW: AW: AW: AW: Minimum order quantity

turban

>Adjust prices (customers): Adjust prices for existing tariffs, if tariff terms allow it.

I don’t know how to do that. Sorry

 

>Curtail demand (customers:) For  those  customers  who  have  subscribed  to  tariffs  that  allow

>for  curtailment,  brokers  may  exercise  curtailment  to  manage  overall  demand  or  to  reduce

>demand when wholesale prices are high.

I guess you can do this using “EconomicControlEvent”s.

 

Maybe John can come back to you.

 

Von: Porag [via Power TAC Developers] [mailto:ml-node+[hidden email]]
Gesendet: Donnerstag, 23. Juni 2016 10:22
An: Tobias Urban <[hidden email]>
Betreff: Re: AW: AW: AW: AW: Minimum order quantity

 

Yes, I know about revoking. What I am trying to say is that I saw in the new 2016 powertac specification (at page 6), 2 new points have been added..

1. Adjust prices (customers): Adjust prices for existing tari
ffs, if tari
ff terms allow it.

2. Curtail demand (customers:) For those customers who have subscribed to tariff
s that allow
for curtailment, brokers may exercise curtailment to manage overall demand or to reduce
demand when wholesale prices are high.

So (for point 1) I was thinking, if there is a new feature for brokers to adjust their tariff prices without revoking it. I don't have the javadoc, so I am unable to see if there is such features exists or not for 1.3.2 broker version.

Thanks
Porag



If you reply to this email, your message will be added to the discussion below:

http://power-tac-developers.975333.n3.nabble.com/Minimum-order-quantity-tp4026243p4026285.html

To start a new topic under Power TAC Developers, email [hidden email]
To unsubscribe from Power TAC Developers, click here.
NAML

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Minimum order quantity

grampajohn
Administrator
In reply to this post by Porag
Hello, Porag -

Porag wrote
Yes, I know about revoking. What I am trying to say is that I saw in the new 2016 powertac specification (at page 6), 2 new points have been added..

1. Adjust prices (customers): Adjust prices for existing tari ffs, if tari ff terms allow it.
To create a variable-rate tariff, you need a Rate with fixed=false, and you need to specify minValue, maxValue,  expectedMean, and noticeInterval. I apologize for not providing an example in the Sample broker. You can then issue VariableRateUpdate messages against the tariff/rate, as long as they satisfy the notice interval. Each VRU contains an HourlyCharge, specifying a time and a rate value. The time is the when the rate value goes into effect, and must be at least noticeInterval hours in the future. If no HourlyCharge applies at a particular time, then the rate value is the expectedMean. The javadoc says that an HourlyCharge applies from its effective time until it's superseded by another HourlyCharge, but I just checked and currently there's no test to confirm that. I'll see what I can do about that.

Note that you can combine this feature with tiers or TOU specifications, so for example you could offer a fixed rate for the first 10 kWh, and a variable rate for usage above that threshold.

Does this help?

John
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Minimum order quantity

grampajohn
Administrator
Porag and all -
grampajohn wrote
.... The javadoc says that an HourlyCharge applies from its effective time until it's superseded by another HourlyCharge, but I just checked and currently there's no test to confirm that. I'll see what I can do about that.
Unfortunately, the javadoc is incorrect, and I'll fix it. The correct behavior is spelled out in the specification, Section 3.1.1. It still needs a test, which I've added, and it passes. So the code implements this behavior as specified.

John
Loading...