The temptation in upstream is to make Salesforce the place where everything about a well lives. It shouldn't be — and the reporting you actually want doesn't require it.
Decide what upstream data Salesforce should own
Salesforce is strong at the commercial and relationship layer — prospects, business development, land relationships, partner contacts, deal pursuit. It is not a production accounting system, and trying to make it one leaves you with a fragile copy of data that lives more authoritatively somewhere else.
Production volumes, revenue distributions, and joint interest billing belong in your production and revenue accounting platforms. Decide deliberately which slice of that data Salesforce needs to support the decisions its users actually make, and leave the rest where it's already governed.
Pick the grain that matches the question
Upstream reporting questions come at different grains — by well, by lease, by area, by partner, by operator. Before building anything, decide the grain each report needs and whether your data supports it.
A revenue-by-partner view and a production-by-well view need different structures, and forcing both out of one flat object produces numbers that are technically present and practically useless. The grain is the design decision; the report is the easy part.
Model working interest and net revenue interest explicitly
The most upstream-specific trap is treating an interest as a single number. Working interest, net revenue interest, and the burden of royalties and overrides are distinct, and a report that blends them will quietly overstate or understate what an operator actually keeps.
If Salesforce is going to report anything about economics or partner exposure, model these interests as explicit, separate values tied to the well or lease — not one "percent" field that every user has to interpret for themselves.
Keep partners and operators as clean records
Upstream is a business of shared assets — working interest partners, operators, non-operated positions. If those parties live as free text or duplicated accounts, any partner-level or operated-versus-non-operated report collapses.
Model operators and partners as real, related records so exposure, activity, and revenue can roll up to the entity that matters for a joint venture decision or an AFE conversation. This is the same account-hierarchy discipline that pays off everywhere, and upstream punishes its absence faster than most.
Bring in accounting data at the right cadence
When Salesforce does need production or revenue figures — for a business development dashboard, a partner summary, an asset overview — bring them in from the system of record at a cadence that matches the decision. Monthly close data doesn't need real-time sync; a lease-status change might.
Replicating everything continuously creates a second version of the truth that drifts from the first. Pull the specific, summarized figures the decision needs, and link out to the accounting system for the detail behind them.
Make the boundary visible to users
The most common failure isn't technical — it's users trusting a Salesforce number that was never meant to be authoritative. If a revenue figure is a monthly snapshot from accounting, say so on the record, and make it obvious where the definitive number lives.
A clearly labeled, slightly stale summary that people understand beats a real-time figure they wrongly treat as the book of record. Honesty about the boundary is what keeps the reporting trusted.
Upstream production and revenue reporting works best when Salesforce stays in its lane — owning the commercial and relationship layer, borrowing summarized figures from the systems that own production and accounting, and being honest about which is which. Model interests and partners explicitly, choose the grain deliberately, and keep the boundary visible. The operators who resist turning Salesforce into a second accounting system get cleaner reporting and far less reconciliation than the ones who try to put everything in one place.
