Re: Marketo rounding figures?  How to stop it?

Anonymous
Not applicable

Hi All,

Our Marketo instance is integrated with SFDC, which uses Data.com Clean for lead/data enhancement.

Recently some contacts were enhanced by adding their annual revenue, which triggered a bunch of API requests.  Turns out Marketo was rounding the annual revenue and syncing it.... SFDC was seeing the change and pulling it's preferred number from Clean... and on and on. 

Here's the actual text from our SFDC admin.   Is there any setting that toggles on/off this rounding function?  Or any other suggestions?  Thanks!

XXXXXX was a lead in the system over the weekend clean set the Annual revenue to $108,598,708.00. However yesterday Marketo decided to change this value to 108,599,000.00. It appears clean detected this as a change and has moved it back to $108,598,708.00. Any idea why Marketo would have changed that value in the system? They are going to just keep conflicting with each other and making changes back and forth to round the value out?

22 REPLIES 22
Anonymous
Not applicable

Hi all,

Here's the result of my support case submission:

Thank you for waiting patiently. I have checked with my Tier 3 and we have found out that it is an expected behavior. To sound more technical in detail, the "Annual Revenue" field is of type currency and in MySQL its considered to be a Float field. To be more simple, MySQL will automatically round the values in our current database structure.

You might ask us to tweak the structure to accept that value but its not feasible for us to do so as it would require a major overhaul of the database and it could cause a whole lot of implications that could even make the database to get crashed often. To be simple, database will become unstable and might cause a lot of issues.

We do have a work around for this. which is to change the field type to "string" . However, standard fields type cannot be changed. So, we suggest that you create a new custom field of type "String" and then have your desired value.

SanfordWhiteman
Level 10 - Community Moderator

FYI, I'm working on a blog post (next blog release cycle, next week or so) that's going to dive deeper into this issue and probably blow some minds with things that unexpectedly no worky.

SanfordWhiteman
Level 10 - Community Moderator

and it could cause a whole lot of implications that could even make the database to get crashed often. To be simple, database will become unstable and might cause a lot of issues.

Laughing to keep from crying... I mean, just say "This is a legacy architectural decision and there are no plans to change it."   No need to throw any FUD into the discussion. Obviously if this were an exact Decimal  (or even Integer, even the IRS doesn't care about decimal points with annual revenue) it wouldn't be any less stable!

But what's still being obfuscated in the response is this isn't rounding as humans understand it.

When you use a (single precision) Float, 932,849,000 is stored in Marketo as 932,849,020.  Note the stored value has seemingly invented 20 more dollars out of nowhere. We don't call that rounding!

Sivaraman_Mani
Level 1

It is an expected behavior and the issue is explained in the below document Currency type field is rounding off its value.

Annual revenue field is also of type "Currency"

SanfordWhiteman
Level 10 - Community Moderator

Dead/restricted link.

Also, this isn't "rounding" in the generally accepted meaning of the term. It's lossy fp math.

Like when

     .1 + .2 = 0.30000000000000004

we don't typically say that's "rounding" because for most people it appears to be a bizarrely failed attempt to gain accuracy, not a predictable loss of accuracy.

Jim_Thao7
Level 9

I would strongly suggest to keep troubleshooting and find the root cause of why it was changed to that value in Marketo.  There definitely has to be a reason why that changed and Marketo should not be automatically changing string values for you that I'm aware of. 

BTW, is there a merge on this record? 

Anonymous
Not applicable

No merge.

Thanks.

Jim_Thao7
Level 9

So I just ran a test, and it looks like SFDC is the culprit here.  I would strongly recommend reaching out to your SFDC admin to take a look at the Annual Revenue field and update it accordingly.

Anonymous
Not applicable

Thank you.  What kind of test and what details can I give him?

Jim_Thao7
Level 9

Actually, I take it back, it's not an SFDC issue.  Marketo is pushing a rounded up number to SFDC.  I'll let you know if I can find the real culprit.

Grégoire_Miche2
Level 10

Look at any Data value change in Marketo on the field.

It might also look like Marketo pushing it, but in fact some SFDC workflow or trigger that does the change, under the Marketo user name.

-Greg

Jim_Thao7
Level 9

So I've been looking at this and it is definitely Marketo rounding up the numbers.

I have a test lead that is not synced to SFDC

pastedImage_0.png

I updated the value for Annual Revenue to 80923849085 and immediately, this is the value found in the Company Info tab

pastedImage_1.png

There's definitely something going on here directly in Marketo.   I haven't heard or read anything about this, but I will definitely keep looking and listening for things related to this.

Grégoire_Miche2
Level 10

Hi Jim,

Post the Change data value details here (click the ID in the activity log to get it). The concomitance with the lead creation event is troubling.

-Greg

Jim_Thao7
Level 9

Here you go.

pastedImage_2.png

Just to clarify, I created the lead first and then manually edited the Annual Revenue value.

Grégoire_Miche2
Level 10

The reason in the screen says that it was a manual edit, nothing automated. What's weird is that the value entered and shown in the activity is not rounded.

Can you try to enter a non rounded number again on the lead and see whether the problem remains ?

Also, also the question is simplistic, but I need to ask Are you sure that you are displaying all the activities in the log ?

In any case, it seems to be worth a ticket to the support.

-Greg

Jim_Thao7
Level 9

Same issue.  Looks like it starts rounding at the 1M mark.  It also rounds down from some of the updates I've been doing.  For example, 9328091 rounds to 9328090.

This is a new record that I manually created just to test this so there are no activities on it, just these CDV's that I've been doing.

SanfordWhiteman
Level 10 - Community Moderator

This is actually a bit more sinister (it's a definite bug) than just rounding.

It also involves floating-point approximation, and there really isn't any reason for it to be kicking in for what appear to be whole Integers of just a few million or billion.

A Currency type field, based on what we know of its upper and lower bounds, is a Float, not an exact value. But it's not just an everyday Float, since it gets rounded in 2 different ways, and potentially in 2 different directions from the original value:

  • one way for display
  • one way for storage

By "display", I mean that the Marketo UI doesn't actually reflect the stored value. For example, 932850001 will be displayed as 932850000 in the UI but stored as 932849980 (which you can verify via the API) So the displayed and stored values diverge in different ways from the originally entered value.

In any case, the cause must be that the fields that we think are low-ish Integers are being multiplied or divided in enough separate steps that floating-point approximation kicks in. And once it kicks in, you can't reverse it to find the original value (that's a fact of Floats). In a non-buggy scenario you don't have to worry about approximation until you exceed 9,007,199,254,740,991 (that's over 9 quadrillion). Obviously the numbers that are proving the bug here are much lower than that, so some steps behind the scenes must be raising them well beyond the safe magnitude before attempting to bring them back.

Anonymous
Not applicable

Thank you, everyone, for your help.

I will submit evidence to support  to see if we can get this resolved.

Grégoire_Miche2
Level 10

As if it was only able to manage 6 digits and round the rest.

I observe exactly the same thing on my sandbox, rounded at the 6th digit:

on entry:

pastedImage_0.png

in the log:

pastedImage_1.png

after refreshing the lead detail screen:

pastedImage_2.png

Call support in, and keep us posted, it's a bug.

You can add a link to this conversation in your ticket.

-Greg

Jay_Jiang
Level 10

Just so you're all aware, I noticed this happening in the Amount and Expected Revenue fields in Opportunity a few months ago. I shrugged it off then as it didn't have a material impact for us.

Seems like the rounding issue only affects currency fields?

pastedImage_0.png