Several fee rows refer to the same customer payment
Keep a payment list with one record per matched payment and a separate component list containing every distinct fee row. Stripe's incurred_by field ties fees to the transaction that incurred them, and one transaction can have multiple fee rows. Link each component to its originating record while retaining product, feature, amount, tax and currency. Sum the payment amount from the payment list once; do not total a payment amount repeated alongside each fee component.
For: A research-only merchant reconciling an itemized Stripe Fees report with actual payment records.
A fee row and a payment row count different things
An itemized fee export describes components of charges. Stripe documents that more than one fee row can relate to the same transaction through incurred_by. It also provides product and feature as separate fields. Repeated originating references can therefore describe separate components, rather than repeated customer payments.
If a spreadsheet joins payment details onto each fee row, the payment amount can appear repeatedly as context. Adding that repeated column multiplies the payment by its number of matched components. This is an effect of the worksheet arrangement, not evidence that the customer paid several times.
Preserve the distinction in your working file: one list for payment records and one for fee components. A summary can show the relationship between them, but its payment total must come from the distinct payment records. A payment with no matched fee row should remain visible as unmatched, rather than disappearing from the payment list.
Establish the originating record before grouping
Read incurred_by on each fee row and match it to the actual provider transaction. Preserve the account context as well as the reference, especially if your files contain more than one account. Do not use a customer name, a similar amount or a nearby timestamp as a substitute for the documented link.
Keep the provider reference distinct from the store's order number. If the originating object is not the payment record used in your payment list, follow the documented relationship in the account records and retain that intermediate reference. Where the link cannot be established, leave the component unassigned. Do not force every fee into a customer-payment group merely because this reconciliation focuses on payments.
For each matched transaction, retain all distinct component rows. Record product and feature separately so a broad product label does not erase the more specific charge description. Multiple components do not by themselves prove that all fees are correct; price and contractual questions still require the actual account terms.
Protect the component detail when calculating totals
Give each fee row a traceable reference. Use a supplied identifier when available; otherwise retain the original export filename and row position as an internal locator. This does not invent a provider fee ID. Preserve the original file so the locator remains meaningful when your working sheet is sorted or filtered.
Check for repeated ingestion of the same source row before calculating component totals. Keep different fee rows that share incurred_by; do not collapse them just because they have the same payment reference. Conversely, importing the same row from overlapping copies of an export does not create another fee. If two distinct provider rows appear to overlap, retain both and flag the question instead of silently deleting one.
Keep amount, tax and currency in separate fields as Stripe's report defines them. Do not add tax again to a figure until its definition establishes whether that calculation is appropriate. Group amounts only within a consistent currency and field definition. Retain the recorded signs for adjustments or credits rather than converting everything into a positive cost.
Calculate the matched payment total from the payment list, and component totals from the distinct fee rows. A component summary by payment, product and feature should remain traceable to those original rows. The payment total is a reference amount, not an additional fee to add to the component total.
Distinguish a complete mapping from a complete cost report
A clean relationship between payments and the fee rows you have does not establish that every fee is present. Stripe says fee data may take up to 96 hours after its balance effect to become available. The report covers most balance-paid fees but excludes charges such as Terminal devices, Capital, Atlas and fees invoiced after use. Keep those scope limits alongside your result.
Also preserve the selected date basis. Fees incurred during a period and fees affecting the balance during that period answer different questions. Match the basis and range before comparing totals, and do not assume those changes explain every remaining difference. An unexplained component stays a question for the provider, with its originating reference and row locator attached through the provider's appropriate channel.
For a Prism processing consultation, describe the report, the grouping problem and the unresolved relationship without sending the export through the public form. Include the website and research-only product types. Confirm any reconciliation assistance, responsibilities, fees and terms before work begins. Email follow-up to an inquiry does not book an appointment, buy a service or submit a processing application.
Payment-to-fee component map
Use the sheet to define the mapping for a real payment and its fee components. Keep exact account references and source files in your controlled reconciliation workbook; use anonymized labels or match results here. Preserve each distinct component while counting the payment once. Unassigned fees and missing fee matches remain visible exceptions.
Worksheet entries are not submitted by Prism’s worksheet and are not saved by the site. Use record types, availability, anonymized observations, or match/mismatch results. Do not enter government identifiers, customer names or addresses, customer messages, receipt-access links, card or bank details, passwords, or keys. Send sensitive documents only through the provider’s verified secure channel.
Payment-to-fee component map. The last column is for temporary notes.
Mapping element
Evidence to retain
Counting rule
Your result or exception
Payment reference
Evidence to retainThe distinct provider payment record, account context, amount and currency.
Counting ruleInclude the payment once in the payment list, independently of how many fees match.
Originating transaction link
Evidence to retainThe incurred_by value and any verified relationship to the payment record.
Counting ruleGroup only supported matches; leave unresolved components unassigned.
Fee row identifier
Evidence to retainA supplied identifier, or the preserved source file and original row position.
Counting ruleCount each distinct fee row once; do not count the same imported source row again.
Product and feature
Evidence to retainBoth report fields and the component's description.
Counting ruleRetain separate components even when they share one payment or broad product label.
Fee amount, tax and currency
Evidence to retainThe original separate fields, their definitions and recorded signs.
Counting ruleSum comparable fields within one currency; establish tax inclusion before deriving a combined total.
Payment counted once
Evidence to retainThe payment-list total compared with the component grouping.
Counting ruleDo not sum payment amounts repeated by a join onto fee rows.
Report coverage
Evidence to retainExport date, date basis, selected range and known exclusions.
Counting ruleA matched set may still be incomplete because of data availability or excluded fees.
Unresolved component
Evidence to retainThe row locator, originating link and field that cannot be explained.
Counting ruleRetain the row and ask a specific question; shared references alone prove neither duplicate fees nor correct pricing.
These are temporary notes. Leaving or reloading this page may clear them. Worksheet entries are not sent automatically. If you copy notes into the consultation message and submit the form, Prism receives them as part of your request.
Limits
incurred_by, product and feature describe the Stripe Fees report. Another provider's export needs its own field definitions.
A one-to-many mapping does not establish the correctness of a fee, tax liability, a universal price or processing eligibility. A fee CSV is not a tax invoice.
Keep card numbers, authentication codes, bank details, payment-access links, credentials and customer records out of the worksheet and public inquiry.
Stripe Fees report — checked 2026-09-29. incurred_by supports transaction reconciliation with multiple fee rows per transaction; product, feature, amount, tax and currency are separate fields. Data may take up to 96 hours after balance effect, specified fees are excluded, and incurred versus balance dates differ. The report does not establish prices or tax liability and is not a PDF tax invoice.
Prism solutions — checked 2026-09-21. Published support is storefront review, processing preparation and help with provider website questions. Scope, fees and terms are discussed before work; providers decide eligibility and account terms.
Prism contact — checked 2026-09-21. The form asks for the website, products and question while excluding sensitive records. Email follow-up is not a booked appointment, service purchase or processing application.
Discuss my processing options
Want to talk through your own processing situation?