PetroPulse AFEPULSE
MAIN
{{ item.icon }} {{ item.label }} {{ item.badge }}
INSIGHTS
{{ item.icon }} {{ item.label }}
{{ user.init }}
{{ user.name }} {{ user.sub }}
{{ searchIcon }}

AFE Dashboard

{{ dash.subtitle }}

Your action queue

Open any AFE directly
{{ q.label }} {{ q.count }}
Nothing here — all clear.

Recent activity

{{ ev.actor }} {{ ev.text }}
{{ ev.time }}

AFEs

{{ list.count }} of {{ list.total }} authorizations · {{ list.totalApprovedFmt }} approved capital

Add columns to table
{{ c.label }}
{{ r.num }}
{{ r.name }}
{{ r.area }} · {{ r.asset }}
Outside-operated · {{ r.operator }}
{{ r.type }} {{ r.statusLabel }} {{ r.approvedFmt }} {{ r.actualsFmt }} {{ r.accrualsFmt }}
{{ r.forecastFmt }}
{{ r.varianceFmt }}
{{ r.varPct }}
{{ r.healthLabel }} {{ x.value }}
No AFEs match these filters.
{{ detail.backLabel }}
{{ detail.num }} {{ detail.statusLabel }} {{ detail.healthLabel }} {{ detail.revLabel }} ● Revision under review

{{ detail.name }}

{{ c }}
{{ m.label }}
{{ m.value }}
{{ m.sub }}
Actuals posted Approved accruals Forecast remaining Approved budget
Partner Routing {{ detail.routing.sentTypeName }}
● Overdue {{ detail.routing.overallStatus }}
Partners responded
{{ detail.routing.respondedCount }} / {{ detail.routing.respondedTotal }}
Working interest in
{{ detail.routing.respondedWiFmt }}
Deadline
{{ detail.routing.deadlineDays }}
{{ detail.routing.deadlineFmt }}
Result
{{ detail.routing.resultLabel }}

Description

{{ detail.overview.desc }}

Economics

Production uplift
{{ detail.overview.econ.uplift }}
Opex reduction
{{ detail.overview.econ.cost }}
Expected payout
{{ detail.overview.econ.payout }}
Operational priority
{{ detail.overview.priority }}
{{ g.title }}
{{ f.0 }} {{ f.1 }}

Cost estimate — {{ detail.estimate.count }} line items

Category / description Qty Unit Unit cost Vendor / source Total
{{ l.cat }}
{{ l.desc }}
{{ l.qty }} {{ l.unit }} {{ l.unitCost }} {{ l.vendor }} {{ l.total }}
Total estimated AFE value {{ detail.estimate.totalFmt }}

Approval timeline

Approval route   {{ detail.approvals.rule }}
{{ st.title }}
{{ st.initials }} {{ st.name }} · {{ st.role }}
{{ st.meta }}
Waiting {{ st.waiting }}
Up next

Revision history

Every authorized change to this AFE is versioned. The original authorization is Rev 0; each revision re-routes through the full approval chain and supersedes the prior version, while the baseline is retained for variance reporting.

Current authorization
{{ detail.revisions.currentAmountFmt }}
{{ detail.revisions.currentLabel }}
A revision is routing for approval. The current authorization stays in effect until the revision is approved.
{{ v.revLabel }} {{ v.type }} {{ v.statusLabel }}

{{ v.scope }}

{{ v.metaLine }}
{{ v.amountFmt }}
{{ v.deltaFmt }}

{{ detail.routing.sentTypeName }}

{{ detail.routing.overallStatus }} ● Overdue

Routed to {{ detail.routing.respondedTotal }} partners on {{ detail.routing.sentDateFmt }} · {{ detail.routing.resultLabel }}

Responded
{{ detail.routing.respondedCount }} / {{ detail.routing.respondedTotal }}
Working interest in
{{ detail.routing.respondedWiFmt }}
Deadline
{{ detail.routing.deadlineDays }}
{{ detail.routing.deadlineFmt }}

Partner responses

Partner WI Contact Sent Viewed Status Responded Reminder
{{ r.company }}
{{ r.email }}
“{{ r.comment }}”
{{ r.wiFmt }} {{ r.contact }} {{ r.sent }} {{ r.viewed }} {{ r.status }} {{ r.responded }} {{ r.reminder }}

{{ detail.routing.lockedHeadline }}

{{ detail.routing.lockedDetail }}

Internal status · {{ detail.routing.approvalStatus }}
!
Working interest is less than 100%. Third-party partners hold {{ detail.routing.partnerWiFmt }} of this well — partner routing may be required for this AFE.

Confirm partner involvement

This is the ownership split carried from the AFE. Make sure it’s right before you route anything to partners.

Operator / company WI
{{ detail.routing.opWiFmt }}
This AFE’s operating entity
Remaining partner WI
{{ detail.routing.partnerWiFmt }}
{{ detail.routing.partnerCount }} partner(s) on record
{{ detail.routing.wiNote }}

Select partner routing type

How should partners respond to this AFE? Pick the option that matches your operating agreement.

Partner list

Add each partner who should receive this routing. Working interest across operator + partners must total 100%.

Partner {{ $index }}
{{ detail.routing.wiNote }} Operator {{ detail.routing.opWiFmt }} + Partners {{ detail.routing.partnerWiFmt }} = {{ detail.routing.allocFmt }}

Routing details

Configuring {{ detail.routing.selName }}.

Deadlines, thresholds, and deemed-response rules are fully configurable — set them to match the governing JOA, CAPL procedure, JV agreement, or company policy. Nothing is enforced automatically.

Attached documents
PDF
{{ detail.routing.afeDocName }}
AFE package · always attached
Included
Select a routing type in Step 2 to configure its details.

Review & send

{{ detail.routing.sendBlock }}
AFE{{ detail.routing.review.afe }}
Total estimated cost{{ detail.routing.review.cost }}
Operator / Partner WI{{ detail.routing.review.opWi }} / {{ detail.routing.review.partnerWi }}
Routing type{{ detail.routing.review.typeName }}
Deadline{{ detail.routing.review.deadline }}
Required responses{{ detail.routing.review.responseList }}
Attached documents{{ detail.routing.review.docs }}
Partners ({{ detail.routing.review.partnerCount }})
{{ pn.name }}{{ pn.wi }}
Partner package preview
{{ detail.routing.review.typeName }} — {{ detail.routing.review.afe }}

Partners receive a cover page with the routing type, the response options ({{ detail.routing.review.responseList }}), the deadline, the working-interest table, and the attached AFE package.

{{ detail.routing.toast }}
Partner package preview {{ detail.routing.pkg.afeNum }}
{{ detail.routing.pkg.operator }}
OPERATOR
PARTNER PACKAGE
Issued {{ detail.routing.pkg.issueDate }}, 2026
{{ detail.routing.pkg.typeTag }}

{{ detail.routing.pkg.typeName }}

{{ detail.routing.pkg.typeDesc }}

{{ detail.routing.pkg.afeNum }}
{{ detail.routing.pkg.afeName }}
Subject asset
{{ detail.routing.pkg.asset }}
Area / field
{{ detail.routing.pkg.area }}
UWI
{{ detail.routing.pkg.uwi }}
Project type
{{ detail.routing.pkg.projType }} · {{ detail.routing.pkg.capex }}
Gross estimate
{{ detail.routing.pkg.costTotalFmt }}
Response required by
{{ detail.routing.pkg.deadlineLabel }}
Note from operator

{{ detail.routing.pkg.message }}

Terms of this routing
{{ t.k }}
{{ t.v }}
Response options
{{ detail.routing.pkg.responseList }}
Working interest
{{ w.name }} {{ w.wiFmt }}
{{ detail.routing.pkg.operator }} · {{ detail.routing.pkg.afeNum }} Page 1 of 3
PARTNER PACKAGE · {{ detail.routing.pkg.afeNum }} Page 2 of 3

Justification & rationale

{{ detail.routing.pkg.priority }} priority
Project description

{{ detail.routing.pkg.desc }}

Why this work is justified

{{ detail.routing.pkg.just }}

Expected benefit

{{ detail.routing.pkg.benefit }}

Risk if deferred

{{ detail.routing.pkg.risk }}

Economics
Production uplift
{{ detail.routing.pkg.econUplift }}
Operating saving
{{ detail.routing.pkg.econCost }}
Forecast payout
{{ detail.routing.pkg.econPayout }}
{{ detail.routing.pkg.operator }} · {{ detail.routing.pkg.afeNum }} Page 2 of 3
PARTNER PACKAGE · {{ detail.routing.pkg.afeNum }} Page 3 of 3

Cost estimate

Gross authorized estimate, 100% working-interest basis.

Category Description Qty Unit cost Total
{{ c.cat }} {{ c.desc }} {{ c.qtyUnit }} {{ c.unitCost }} {{ c.total }}
Subtotal{{ detail.routing.pkg.baseTotalFmt }}
Contingency (8%){{ detail.routing.pkg.contFmt }}
Total gross estimate{{ detail.routing.pkg.costTotalFmt }}
Cost allocation by working interest
{{ w.name }} {{ w.wiFmt }} {{ w.net }}

Net shares are each party’s working-interest portion of the gross estimate, shown for reference. Actual billing follows the joint operating agreement.

{{ detail.routing.pkg.operator }} · {{ detail.routing.pkg.afeNum }} Page 3 of 3

June 2026 accrual

Accrual required = completed work not yet posted as actuals

Accrual not submitted
Actuals posted
{{ detail.accruals.currentFmt.actualsFmt }}
Accrual required
{{ detail.accruals.currentFmt.accrualFmt }}
Forecast remaining
{{ detail.accruals.currentFmt.remainFmt }}
Forecast final
{{ detail.accruals.currentFmt.finalFmt }}
Accrual comment

Saved to this AFE’s {{ detail.accruals.currentMonth }} accrual — visible here and in Monthly Accruals.

Accrual history

Reporting month Actuals posted Accrual Fcst remaining Fcst final Confidence Status
{{ m.month }} {{ m.actualsPostedFmt }} {{ m.accrualFmt }} {{ m.remainingFmt }} {{ m.finalFmt }} {{ m.confidence }} {{ m.status }}
Note {{ m.note }}
No accruals yet — this AFE has no posted spend for the current period.

Posted actuals — {{ detail.actuals.count }} entries

From accounting system · all matched
Date Vendor Invoice Category Posted month Amount
{{ r.date }} {{ r.vendor }} {{ r.inv }} {{ r.cat }} {{ r.month }} {{ r.amountFmt }}
Total actuals posted to date{{ detail.actuals.totalFmt }}
No actuals posted yet for this AFE.

Forecast final cost build-up

Actuals posted{{ detail.forecast.actualsFmt }}
+ Approved accruals{{ detail.forecast.accrualsFmt }}
+ Forecast remaining{{ detail.forecast.remainingFmt }}
Forecast final cost{{ detail.forecast.finalFmt }}
Approved budget{{ detail.forecast.approvedFmt }}
Variance to approved {{ detail.forecast.varianceFmt }} ({{ detail.forecast.varPct }})

Forecast trend

Budget
{{ b.valFmt }}
{{ b.month }}

Supplement required

Forecast final cost exceeds the approved AFE by {{ detail.forecast.suppAmount }} ({{ detail.forecast.suppPct }}), past the supplement threshold of 10% or $15,000 over estimate. A supplement with an overrun reason and revised approved amount is required before further commitments.

Drop files here or click to upload
Vendor quotes, estimates, schematics, field tickets, invoices, photos · PDF, XLSX, DOCX, PNG
{{ d.type }}
{{ d.name }}
{{ d.by }} · {{ d.date }} · {{ d.size }}
Download
{{ c.init }}
{{ c.author }} · {{ c.role }} · {{ c.time }}
{{ c.channel }}

{{ c.text }}

Timestamp User Action Field Change
{{ e.time }} {{ e.user }} · {{ e.role }} {{ e.action }} {{ e.field }} {{ e.old }} {{ e.neu }}

Monthly Accruals

Reporting period {{ acc.period }} · month-end close {{ acc.closeDate }}

Accrual month
{{ acc.month.label }}
{{ acc.month.submittedTxt }}·{{ acc.month.enteredTxt }}
{{ k.label }}
{{ k.value }}
AFE / Project Owner Prior accrual {{ acc.monthShort }} accrual Δ vs prior Gross estimate Gross actual Variance
{{ r.num }}
{{ r.name }}
{{ r.owner }} {{ r.priorFmt }}
$
{{ r.deltaText }} {{ r.grossEstFmt }} {{ r.grossActFmt }} {{ r.varianceFmt }}
{{ r.action }} →
Accrual comment · {{ r.num }} · {{ acc.monthShort }}
{{ acc.selCount }} selected — submit together, or use the button on each row. Select line items with the circles on the left to submit several accruals at once.

Approvals

AFE authorizations and supplements awaiting decision

Revision · {{ c.revLabel }} {{ c.num }} {{ c.typeLabel }}

{{ c.name }}

{{ c.reason }}

{{ r.label }}
Revised to
{{ c.newFmt }}
{{ c.deltaFmt }}
{{ c.owner }}
{{ c.kindLabel }} {{ c.num }}

{{ c.name }}

{{ c.reason }}

{{ r.label }}
Requested
{{ c.amountFmt }}
{{ c.owner }}
{{ c.kindLabel }} {{ c.num }}

{{ c.name }}

{{ c.reason }}

{{ r.label }}
AFE amount
{{ c.amountFmt }}
{{ c.owner }} · {{ c.capex }}

Recently approved

{{ r.name }}
{{ r.num }} · approved by {{ r.by }} · {{ r.date }}
{{ r.amountFmt }}

Forecast & Variance

Forecast final cost vs approved budget across the active portfolio

{{ k.label }}
{{ k.value }}
{{ k.sub }}
AFE / Project Cost position Approved Actuals Accruals Forecast final Variance
{{ r.num }}
{{ r.name }}
{{ r.approvedFmt }} {{ r.actualsFmt }} {{ r.accrualsFmt }} {{ r.finalFmt }}
{{ r.varianceFmt }}
{{ r.varPct }}

{{ create.headerTitle }}

{{ create.headerSub }}

Cancel

Who is operating this project?

This determines what we capture. Pick the option that matches where this AFE came from.

Tell us about this AFE

Start with the basics — you can change any of this later.

AFE type
Which wells does this affect?

Pick one or more. We’ll pull the licence numbers automatically.

Add a well manually

For wells not yet in the registry — a new drill, a recent acquisition, or a partner-operated well. We’ll match it to a UWI once it’s licensed.

Partner working interest

This well is jointly owned. Add each partner company and the working interest they hold.

{{ create.wiRemainLabel }}
%

Scope & justification

Cost estimate

Maj / Min Cost category Gross cost Net cost
{{ l.netFmt }}
Subtotal{{ create.subtotalFmt }}
Contingency ({{ create.contPct }}%){{ create.contFmt }}
Total AFE value{{ create.grandFmt }}

Project economics

Returns and recovery used to justify the spend. Cost estimate carries forward from the previous step.

Attachments

Supporting documents for this AFE — vendor quotes, internal estimates, engineering memos, schematics.

{{ f.ext }}
{{ f.name }}
{{ f.sizeFmt }}

Review & submit

Missing required fields
{{ m }}
Project title{{ create.summary.title }}
Type · Area · UWI{{ create.summary.type }} · {{ create.summary.area }} · {{ create.summary.asset }}
Owner · Class · Year{{ create.summary.owner }} · {{ create.summary.capex }} · {{ create.summary.year }}
Total AFE value{{ create.summary.grandFmt }}
Cancel
Recording an AFE another company sent us. Copy the details straight from their AFE package — you can attach the PDF in a moment.

Our interest & cost

Capture the gross AFE value, our working-interest share, and the operator’s response deadline.

Our net share
Gross AFE × our working interest ({{ create.wiPctFmt }})
{{ create.netShareFmt }}

Documents

Attach the operator’s AFE PDF and any cost detail or correspondence that came with it.

{{ f.ext }}
{{ f.name }}
{{ f.sizeFmt }}

Election & review

Record our decision and confirm the details before saving.

Our election
Missing required fields
{{ m }}
Ready to save. This AFE will be recorded in our system as {{ create.internalNum }}, cross-referenced to {{ create.summary.operator }}’s {{ create.summary.afeNo }}.
Internal AFE number{{ create.summary.internalNum }}
Operating company{{ create.summary.operator }}
Their AFE number{{ create.summary.afeNo }}
Project · Type · Area{{ create.summary.title }} · {{ create.summary.type }} · {{ create.summary.area }}
Received{{ create.summary.recvVia }} · {{ create.summary.recvDate }}
Our WI · Gross AFE{{ create.summary.wi }} · {{ create.summary.gross }}
Election deadline{{ create.summary.deadline }}
Our election{{ create.summary.election }}
Our net share{{ create.summary.net }}
Cancel

Reports

Period financial reports for capital tracking and month-end close — exportable for finance and management.

{{ k.label }}
{{ k.value }}
{{ k.sub }}
{{ rep.meta.operator }}

Capital Spend vs. Budget

{{ rep.variance.subtitle }}

Generated {{ rep.meta.generated }}
by {{ rep.meta.generatedBy }}
AFE / Project Approved Spent Accrued Remaining Forecast final Variance %
{{ g.label }} · {{ g.countLabel }} {{ g.approvedFmt }} {{ g.spentFmt }} {{ g.accruedFmt }} {{ g.remainingFmt }} {{ g.finalFmt }} {{ g.varFmt }} {{ g.varPct }}
{{ r.num }}
{{ r.name }}
{{ r.approvedFmt }} {{ r.spentFmt }} {{ r.accruedFmt }} {{ r.remainingFmt }} {{ r.finalFmt }} {{ r.varFmt }} {{ r.varPct }}
Total — {{ rep.variance.count }} AFEs {{ rep.variance.totalApprovedFmt }} {{ rep.variance.totalSpentFmt }} {{ rep.variance.totalAccruedFmt }} {{ rep.variance.totalRemainingFmt }} {{ rep.variance.totalFinalFmt }} {{ rep.variance.totalVarFmt }} {{ rep.variance.totalVarPct }}
Period status {{ rep.register.statusLabel }}
{{ k.label }}
{{ k.value }}
{{ k.sub }}
{{ rep.meta.operator }}

Month-End Accrual Register

Reporting period {{ rep.register.period }} · close {{ rep.register.closeDate }}

Generated {{ rep.meta.generated }}
by {{ rep.meta.generatedBy }}
AFE / Project Cost centre Preparer Prior accrual {{ rep.register.monthShort }} accrual Actuals to date Status Sign-off
{{ r.num }}
{{ r.name }}
{{ r.cc }}
{{ r.capex }}
{{ r.owner }} {{ r.priorFmt }} {{ r.curFmt }} {{ r.actualsFmt }} {{ r.status }} {{ r.signoff }}
Total — {{ rep.register.count }} AFEs {{ rep.register.totalPriorFmt }} {{ rep.register.totalCurFmt }} {{ rep.register.totalActualsFmt }}
{{ so.role }}
{{ so.name }}
{{ so.detail }}
{{ so.date }}

{{ otherTitle }}

This module is part of the AFEPulse roadmap — wiring next.

Review queue AFE {{ review.idxHuman }} of {{ review.total }}
{{ review.item.num }}

{{ review.item.name }}

{{ review.item.healthLabel }} {{ review.item.waitIcon }}{{ review.item.waitShort }}
{{ review.item.decisionLabel }}
Note to owner: {{ review.item.decComment }}
Requested amount
{{ review.item.amountFmt }}
{{ review.item.capex }} · {{ review.item.year }}
{{ m.k }}
{{ m.v }}
Scope

{{ review.item.desc }}

{{ st.k }}
{{ st.v }}
Approval route after review
{{ r.label }}
Request changes from {{ review.item.owner }}
Returned to the owner along with your note.

Review queue cleared

You worked through all {{ review.total }} AFEs awaiting your technical review.

{{ review.approvedCount }}
Approved
{{ review.changesCount }}
Changes
{{ review.skippedCount }}
Skipped
Approval queue AFE {{ approval.idxHuman }} of {{ approval.total }}
{{ approval.item.num }}

{{ approval.item.name }}

{{ approval.item.healthLabel }} {{ approval.item.waitIcon }}{{ approval.item.waitShort }}
{{ approval.item.decisionLabel }}
Authorization amount
{{ approval.item.amountFmt }}
{{ approval.item.capex }} · {{ approval.item.year }}
{{ m.k }}
{{ m.v }}
Authority {{ approval.item.ruleText }}
Scope

{{ approval.item.desc }}

{{ st.k }}
{{ st.v }}
Approval route
{{ r.label }}{{ r.tag }}
Reason for return
Returned to the owner along with your note.

Approval queue cleared

You worked through all {{ approval.total }} authorizations pending your decision.

{{ approval.approvedCount }}
Approved
{{ approval.returnedCount }}
Returned
Revise AFE · {{ revise.headerRevLabel }}
{{ revise.num }} · {{ revise.name }}

{{ revise.doneRev }} submitted for approval

This revision now routes through the full approval chain — the same {{ revise.doneChainCount }} approvers as a new AFE. The current authorization stays in effect until it is approved.

{{ revise.doneNewFmt }}
Revised estimate
{{ revise.doneDeltaFmt }}
Change to budget
Reason for revision
Scope of revision
Revised cost estimate
Category Qty Unit cost Total
$
{{ l.totalFmt }}
Revised estimate total {{ revise.newTotalFmt }}
Current ({{ revise.currentRevLabel }})
{{ revise.currentFmt }}
Revised ({{ revise.nextRevLabel }})
{{ revise.newTotalFmt }}
{{ revise.deltaLabel }}
{{ revise.deltaFmt }} ({{ revise.deltaPct }})
Re-routes for approval
{{ r }}
{{ revise.submitBlock }}
Supplement AFE
{{ supplement.num }} · {{ supplement.name }}

Supplement submitted for approval

The supplement request now routes through the approval chain: {{ supplement.doneChainText }}. Further commitments are blocked until it is authorized.

+{{ supplement.doneAdditionalFmt }}
Supplemental amount
{{ supplement.doneNewFmt }}
New authorized total
Approved AFE
{{ supplement.approvedFmt }}
Forecast final
{{ supplement.forecastFmt }}
Overrun
{{ supplement.overrunFmt }} ({{ supplement.overrunPct }})
Reason for overrun
Justification
Supplemental cost
Cost category Description Amount
Total supplemental request +{{ supplement.additionalFmt }}
Original approved
{{ supplement.approvedFmt }}
+
Supplement
{{ supplement.additionalFmt }} ({{ supplement.additionalPct }})
=
New authorized total
{{ supplement.newTotalFmt }}
Routes for approval
{{ r }}
{{ supplement.submitBlock }}
Submitted for approval
Your AFE has been routed for approval. Reference it by the number below.
AFE Number
{{ submitDone.num }}
{{ submitDone.name }}