Salesforce data that
adds itself up.
What it does
Six things it does,
none of them noisy.
Any relationship
Lookup, master-detail, or a junction object. If two objects are related, you can roll up between them.
Real-time on save
The child changes, the parent number changes. No batch job to wait for and no stale field on the layout.
Hourly recalculation
Catches everything triggers miss: data loads, API updates, and time-based criteria. Runs on the hour, inside your org.
Built for volume
Bulkified Apex with one SOQL query per parent object, so a 50,000-record load doesn't hit governor limits.
Multi-currency
Rollups respect the org's currency settings and convert correctly when the parent uses a different currency.
Kill switch
One setting stops every trigger immediately. No deployment, no deactivation of code, no waiting.
Native or not
Salesforce already rolls up.
Just not everywhere.
Salesforce ships its own Roll-Up Summary field, and when your data fits its shape it is the right answer. It only lives on the master side of a master-detail relationship, which is where most orgs run out of road with it.
Use the native field when
- The objects are already in a master-detail relationship, and the child really should be owned and shared by the parent.
- You need count, sum, min, or max on a numeric child field.
- The summary stays one level deep and the relationship is not going to change.
- Volume is modest, and recalculation on save keeps up with the way your team works.
Outside that shape there is no setting to change: a summary field cannot be added to a lookup relationship.
Reach for Ditto Rollups when
- The relationship is a lookup, and converting it to master-detail would change ownership, sharing, and every report built on it.
- You need an average, which native summaries do not offer.
- The filter has to reach another object, or needs more than a simple comparison on the child record.
- Volume is high enough that you want an hourly pass as well as the real-time one, so nothing drifts after a data load.
Both can sit on the same parent. Ditto writes to a field you own, so it never touches an existing summary field.
If master-detail works and the field does what you need, use it. Ditto Rollups is for the cases it cannot reach, not a replacement for something already doing the job.
In the app
A Lightning app,
not a setup page.
Every rollup in one list, with the source, the function, and whether it is running. Configure it, pause it, and read the error log without leaving Salesforce.
The Rollups tab: every rollup in the org, its source, and whether its trigger is deployed.
Rollup editor
- Parent object
- The object that receives the summary.
- Parent field
- Standard or custom field that stores the value.
- Child relationship
- Any lookup or master-detail relationship.
- Child field
- The field being aggregated, or Id for count.
- Function
- Sum, count, min, max, average.
- Filter criteria
- Only roll up the child records that qualify.
- Recalculate hourly
- Adds the scheduled pass for missed changes.
- Locked
- Stops edits until an admin unlocks the rollup.
Filter builder
Operators
SOQL date literals
Retargeting
Records move. The numbers follow.
Change the parent on a child record and the rollup recalculates both sides in the same transaction. Old parent down, new parent up, no manual refresh and no overnight drift.
Settings
Admin control, in the app
- Run as system mode or as the running user — your choice, per org.
- Pause a single rollup without deleting its configuration.
- Kill switch stops every trigger instantly.
- Error log keeps the record id, rollup, and exception for each failure.
Why free
Free, and not as a trial.
It is the floor the suite stands on.
Ditto Rollups is a primitive. The numbers it keeps current are what the rest of the suite reads: territories, routing, and whatever ships next all assume a parent record already knows its own totals. Charging for that would make every app built on top of it cost more and reach less, so it stays free.
No fenced features
Every rollup type, hourly recalculation, retargeting, and the error log are in the free app. There is no paid tier waiting behind the settings page.
No per-user maths
Per-seat pricing punishes the orgs that need this most. A five-user company and a five-thousand-user one pay the same for Rollups: nothing.
The suite is the business
Rollups earns its keep by making Salesforce work properly before you need anything else from us. When you do need something else, the suite is already there.
It also keeps the suite honest. If a later Ditto app depends on rollup data, it will depend on something every org can have on day one.
Questions
Straight answers.
Does it work with master-detail relationships?
Yes. Lookup relationships, master-detail relationships, and junction objects all work. The rollup writes to a field you own, so it never conflicts with a native summary field.
What happens during a data load?
The trigger runs bulkified, so a load of tens of thousands of records recalculates in batches. If the load bypasses triggers entirely, turn on hourly recalculation and the numbers catch up on the next pass.
Does it replace formula fields?
No. Formula fields can't cross a lookup to a child object, and they can't count or aggregate. Rollups fill that specific gap and leave your formulas alone.
How much does it cost?
Nothing. Ditto Rollups is free to install and free to keep. There is no per-user licence and no upgrade path to buy.
Can I turn it off?
One switch stops every trigger without uninstalling anything. Your rollup configuration and stored values stay exactly where they are.
Install it free.
Keep it free.
Ditto Rollups installs in minutes and is free on the AgentExchange. Assign the permission set, create a rollup, and watch the parent numbers update.