Skip to main content

What to do with negative Actor profit

What is negative Actor profit and what to do about it

Lis Vrijsen avatar
Written by Lis Vrijsen
Updated this week

What is negative profit?

When using a pay-per-result or pay-per-event monetization model, users don’t pay for the platform resources an Actor consumes during execution. Apify deducts the platform resource costs from the Actor's revenue. A negative profit occurs when these costs are higher than the generated revenue.

⚠️ Negative profits are deducted from your other Actors' profits, resulting in the final payout. However, payouts can only be positive. If your overall profit from all your public Actors is negative, you won't be charged, and the final payout will be $0.

How to avoid negative profit:

Here are the steps you should take to mitigate the risk of negative profit:

  1. Thoroughly test your Actor. Test with different features enabled and various result amounts. This will help you determine the optimal price per result or price per event to maximize profitability.

  2. Set memory limits in the actor.json file. This controls platform usage costs. It prevents users from setting higher memory limits than you accounted for in your pricing model.

  3. For pay-per-result Actors, implement a check on ACTOR_MAX_PAID_DATASET_ITEMS. Without this, users might receive more results than they pay for, based on the value set in ACTOR_MAX_PAID_DATASET_ITEMS. Costs continue to increase as the Actor delivers results, but revenue does not increase because the user is not charged for the extra results. This can lead to a substantial negative profit for that specific run. Pay-per-event Actors have this check built in.

Scenarios that frequently cause negative profit:

Several situations can lead to your Actor generating a loss:

  • An Actor may offer multiple features or settings. The cost of a run varies depending on which features a user enables. For example, running a Google Maps scraper to collect place information only is less expensive than running it to gather places and reviews.

  • Starting an Actor consumes platform resources. If your pricing model is pay-per-result, this initial startup cost does not generate revenue. Running an Actor repeatedly for just one result can lead to costs exceeding revenue, affecting your overall profitability.

  • If a user initiates an Actor with invalid input, it will still incur startup costs but produce no results, and therefore no revenue.

For pay-per-result Actors, you can either optimize functionality or increase the price. For pay-per-event, you can establish different events to cover your runtime costs appropriately.

Determine the cause of negative profit:

  1. Open the Actors > Development > Analytics tab in Apify Console.

  2. In the All Actors filter at the top of the page, select the Actor you are investigating.

<a href="https://lh7-rt.googleusercontent.com/docsz/AD_4nXclluhJIMZ97We_c_gTxkxDHuE9jIrSC843NOKh7juxuHyI1uyn8FiORB5FALnfeqNrJNxEkrim2OIMjhPGhmTkzWBSlAIgkv6pWxYzvFxdjAHyQNDETE48cBdWtMXNRq-J_fs9GQ?key=TTfoLOafB2YIX1FKZQK7jfy4" target="_blank" rel="nofollow noopener noreferrer">https://lh7-rt.googleusercontent.com/docsz/AD_4nXclluhJIMZ97We_c_gTxkxDHuE9jIrSC843NOKh7juxuHyI1uyn8FiORB5FALnfeqNrJNxEkrim2OIMjhPGhmTkzWBSlAIgkv6pWxYzvFxdjAHyQNDETE48cBdWtMXNRq-J_fs9GQ?key=TTfoLOafB2YIX1FKZQK7jfy4</a>


3. Scroll down to the User Runs section.

  • Users can share their runs with you for troubleshooting purposes. If they share their runs, you can analyze how they use your Actor and identify the cause of the negative profit.

  • Not all users share their runs. If the run causing the negative profit is not displayed on the Analytics page, you can contact our Support team for assistance.

Resolving negative profit with pay-per-event

Switching the payment model from pay-per-result to pay-per-event can address many negative profit scenarios. With pay-per-event, you can charge users for each result and the Actor's startup. This resolves negative profit issues from repeated runs with one result and runs with invalid input. Additionally, you can set different prices based on the features users enable.

Did this answer your question?