AlgoforteETRM ENGINEERING · KRAKÓW

SUBCONTRACT DELIVERY FOR ENERGY TRADING PLATFORMS

Your trading system, understood at the row level.

We build and extend ETRM modules for the software companies, consultancies and system vendors delivering them across Europe.

→ position keeping · curves · exchange gateways
→ scheduling · settlement · EMIR / REMIT

POSITION KEEPING · BOOK DE-POWER-PROP--:-- CET · continuous · recalc on tick
CONTRACTVENUEPOS MWMARKΔMTM EUR
DE Base Cal-27EEX+4589.02+0.6220,088
DE Peak Q1-27EEX-30112.270.4810,368
NL Base M+1EPEX+2279.41+0.314,910
TTF Gas Cal-27ICE ENDEX+6032.02+0.177,344
NO2 Base M+2NORD POOL-1845.940.263,370
FR Base W+1EPEX+1295.10+0.554,752
CEGH Gas Q4-26CEGH+2534.83+0.234,140
NET5 venues+11654,972

Illustrative data. The mechanism is the point: every price tick reprojects positions and MtM from the event log. No overnight batch, no stale marks.

recalc p99
240 ms
as-of query
any timestamp
source
event log, replayable

IN THE DOMAIN

15 yrs

Energy trading and risk only. No pivots.

MODULES DELIVERED

40+

In vendor platforms and in-house systems.

ENGINEERS

15

No junior bench.

VENUES CONNECTED

5

Nord Pool · EPEX SPOT · EEX · TTF · CEGH

TYPICAL CLIENT

Your team

Software houses, consultancies, system vendors.

THE VIEWS WE BUILD

Three screens every trading desk argues over before nine in the morning. We build the services behind them, and we can read them, which is a shorter conversation than it sounds.

FORWARD CURVE · DE BASEEUR/MWh · M+1…M+18
80100120M+1M+6M+12M+18

Solid: as-of today 06:00. Dashed: same curve one month ago. Versioned snapshots, so the move is explainable.

PNL ATTRIBUTION · MONTH TO DATEM EUR
0123+1.82price-0.44volume+0.96curve+0.31new deals-0.12FX+0.04residualtotal +2.57

Every bar has to be defensible in the morning meeting. The residual is the one a trader asks about first.

VAR 95% VS LIMIT · 30 DAYSM EUR
1.52.02.5limit 2.40D-30today

Limit breaches belong in the capture path, not in a report that arrives the next morning.

01 / DOMAIN

Where our commits land in an ETRM stack.

Nine layers that all have to agree with each other by 06:00. The map tracks the layer you are reading.

01

Trade capture and lifecycle

build + extend

Bilateral deals, exchange fills, broker confirmations and bulk uploads have to land in one lifecycle with one identity, and amendments must not disturb a close that has already been signed off.

FAILS AS → amendment reruns the whole night; two systems disagree on the same trade id

WE BUILD → capture layer, amendment path, lifecycle state machine, idempotent ingestion

02

Exchange and broker gateways

build

Nord Pool, EPEX SPOT, EEX and the gas hubs, plus broker feeds: order entry, trade capture reports, session windows, throttling, and the resend path after an outage.

FAILS AS → a dropped session at 09:00 and no way to prove which orders were live

WE BUILD → gateway services, session handling, replay, venue reconciliation

03

Position keeping

build + rebuild

Physical and financial positions by book, delivery period and location, projected from the event log rather than assembled by an overnight job.

FAILS AS → positions are only correct once a day, and never for yesterday at 14:00

WE BUILD → event-sourced projections, bitemporal stores, as-of queries

04

Curves and market data

build

Forward curve construction, shaping, interpolation and versioning, with vendor feeds reconciled against exchange settlement prices instead of trusted.

FAILS AS → traders open on marks nobody can trace to a source snapshot

WE BUILD → curve service, shaping rules, snapshot versioning, reconciliation jobs

05

Valuation, MtM and PnL attribution

build + extend

Revaluation runs and PnL split by price, volume, curve move, new deals and FX. Numbers a trader can argue with in the morning meeting.

FAILS AS → an unexplained residual line that grows every quarter

WE BUILD → revaluation engine, attribution logic, explainable breakdowns

06

Risk metrics and limits

extend

VaR, exposure and limit monitoring with a defensible record of every override and who approved it.

FAILS AS → limit breaches discovered in a report, not at the point of trade

WE BUILD → limit checks in the capture path, exposure aggregation, audit trail

07

Scheduling and nomination

build

TSO nominations, schedule versions, cut-off times, imbalance follow-up, and reconciliation of what was traded against what actually flowed.

FAILS AS → a missed cut-off becomes an imbalance cost nobody budgeted

WE BUILD → nomination services, version handling, imbalance reconciliation

08

Settlement and invoicing

build + extend

Invoice generation, netting agreements, statement matching, credit notes and the disputes that follow.

FAILS AS → settlement runs in a spreadsheet next to the system, not inside it

WE BUILD → settlement engine, matching rules, invoice generation, dispute states

09

EMIR and REMIT reporting

build

Extraction, enrichment, validation, submission, rejection loops and back-reporting, built so a schema change on two months' notice is configuration, not a project.

FAILS AS → rejections tracked in a workbook; every schema change costs a quarter

WE BUILD → reporting pipeline, rule sets as data, requeue and evidence trail

02 / INTEGRATION

Energy projects rarely fail in the calculation. They fail at the seams.

An ETRM landscape is never one system. There is a vendor platform, two exchanges, a market-data provider, the ERP that issues invoices, a TSO that speaks EDIFACT, a regulator that speaks ACER XML, and a fifteen-year-old in-house tool nobody is allowed to switch off.

We connect them because we already know the interfaces, the formats and the way each one misbehaves, including the ones with no documentation and one contact person on holiday.

FORMATS AND PROTOCOLS WE ALREADY KNOW

RESTgRPCSOAPFIX-style sessionsKafka topicsEDIFACT MSCONSESS / ERRPENTSO-E XMLACER XML schemasIDocCSV settlement filesODBC / staging tablesSFTP dropsXSD / JSON SchemaCDC log streams

Plus the undocumented ones: staging tables, SFTP drops and a stored procedure someone wrote in 2013.

INTEGRATION ROUTES WE HAVE BUILT AND OWN IN PRODUCTION
FROMVIATOWHAT ACTUALLY BREAKS
Vendor ETRM platformvendor API · staging tables · SDK hooksIn-house risk and reporting warehouseCurve versions coerced silently on the way out, so risk and front office quote different marks.
Exchanges: EEX, EPEX SPOT, Nord PoolREST · FIX-style sessions · TCR filesTrade capture and position keepingA session reset inside the clearing window, with no record of which orders were live.
Market-data providersstreaming feeds · file dropsCurve and market-data serviceTwo snapshots claiming the same timestamp, and no source stamped on the mark.
TSO and schedule exchangeEDIFACT MSCONS · ESS / ERRP · ENTSO-E XMLScheduling and nomination moduleSchedule version numbering that disagrees with the cut-off the TSO applied.
ERP and billing (SAP IS-U class)IDoc · REST · flat filesSettlement and invoicingNetting rules that differ per counterparty but are implemented once, centrally.
Regulatory ARM / RRMACER XML schemas · submission APIsEMIR and REMIT reporting pipelineA schema change with two months' notice landing in hard-coded validation rules.
Legacy in-house toolsCDC log streams · Kafka · scheduled extractsNew services during modernisationNo natural key shared across systems, so the same trade exists three times.

RULE 01

Contract first, then code

Every interface gets a written contract with schemas and versioning before either side builds against it, including the interfaces we inherit.

RULE 02

Idempotent and replayable

Every inbound message can arrive twice and every day can be replayed. That is what makes an outage a delay instead of a data-quality project.

RULE 03

Reconcile, do not trust

Counts and values checked against the counterparty's own file: exchange settlement, vendor snapshot, ERP ledger. A report goes out when they disagree.

RULE 04

One identity per trade

A mapping layer that holds external references alongside a canonical id, so the same deal is recognisable in six systems.

.NETC#JavaSpring BootPythonSQL ServerPostgreSQLApache KafkagRPCRESTAzureAWSCQRSevent sourcingbitemporal modelsEMIRREMITNord PoolEPEX SPOTEEXTTFCEGHVaRPnL attribution

03 / SERVICES

Six units of work, scoped and priced differently.

SVC-01

ETRM module development

The missing component, built to fit the platform you already run: position keeping, curve service, settlement, limits. It lives inside its data model, its release train and its performance budget.

.NET · Java · SQL Server

SVC-02

Vendor platform extension

Customisation of commercial ETRM systems of the Endur / Allegro / TRM class: adapters, custom valuation logic and reporting layers that respect the vendor's upgrade path.

C# · Java · vendor SDKs

SVC-03

Exchange and market-data integration

Venue and vendor connectivity with session handling, replay after outage, and reconciliation against settlement files rather than optimism.

REST · gRPC · Kafka

SVC-04

Regulatory reporting

EMIR and REMIT pipelines end to end: extraction, enrichment, validation, submission, rejection handling and the evidence trail an auditor asks for two years later.

Python · .NET · PostgreSQL

SVC-05

Legacy modernisation

Strangler-pattern extraction from long-lived systems; event sourcing where history matters, bitemporal models where 'as of when?' is the real question.

CQRS · Kafka · Azure / AWS

SVC-06

Dedicated development teams

Three to eight senior engineers who already speak the domain, embedded in your delivery organisation for the length of the programme.

your repo · your process

04 / ENGAGEMENT

We ship inside your delivery organisation.

You hold the contract, the client relationship and the roadmap. We supply the energy-domain engineering that would otherwise cost your team two years and one failed release.

Your repo, your CI, your board, your definition of done. No client-facing overhead, no parallel project, no logo on the deck unless you want one.

MODELDedicated teamScoped module delivery
SHAPE3–8 engineers, named, stable over quarters2–4 engineers, one bounded deliverable
HORIZON6 months and up, rolling6–16 weeks, defined end
COMMERCIALMonthly rate per engineerFixed scope, acceptance criteria agreed up front
WHO OWNS SCOPEYou. We work your backlogShared. Specified together, then ours to deliver
TYPICAL TRIGGERA platform programme short on domain capacityOne module blocking a release date
ENDS WITHRamp-down and knowledge transfer on noticeHandover: tests, runbook, walkthrough

Direct work for utilities and trading houses runs on the same two models, with one contract fewer and the same engineers.

05 / TECHNOLOGY

Not a logo grid. What we write, where it sits in a trading system, and how long it has been in production for us.

.NET / C#

Trading engines, calculation services, vendor platform extensions

15y

Java / Spring Boot

Integration services, exchange gateways, reporting pipelines

13y

Python

Curve construction, quantitative tooling, reconciliation

9y

SQL Server · PostgreSQL

Bitemporal trade and position stores, settlement data

15y

Apache Kafka

Event backbones for price ticks and lifecycle events, with replay

8y

REST · gRPC

Service contracts between trading, risk and back office

12y

Azure · AWS

Deployment alongside on-prem trading floors

10y

06 / PREVISE CORAL

Inside Coral, not alongside it.

PREVISE PARTNER

Coral is the core of an ETRM system: trade capture, positions, valuation, settlement. Around that core sit apps, and an app does one of two things. It adds a function the core does not have, or it reads data out of the core and passes it on to something else. Integration work is nearly always the second kind. We build both.

HOW THE ROUTES RUNPLATFORM BOUNDARY
PREVISE CORALplatform boundaryEEX · EPEX SPOTfills · TCR filesEXCHANGE GATEWAYSbuiltREMIT table 1ACER XMLMARKET DATAvendor snapshotsCURVE SERVICEextendedsettlement pricesINVOICE RUNGENERATION FORECASTwind · solar · loadSCHEDULE EXPORTbuiltschedule fileNOMINATION SYSTEMDeltaxe · GMLS · DispoEnergywhich then nominates with the TSOsolid · built by usdashed · platform module we extend

Solid is built by us, dashed is a platform module we extend. Formats are the ones the routes actually carry. On the schedule route we hand over an export; the nomination itself is filed by the downstream system.

MODULE BY MODULEEXTENSION SURFACE
MODULECORAL GIVES YOUWHAT WE ADDVIADEPTH
Trade captureDeal entry and lifecycleDesk-specific capture screens, bulk amendment pathsCoral SDKextended
Exchange gatewaysGeneric connectivityVenue sessions, replay after outage, reconciliationREST · FIX-stylebuilt
Position keepingPositions by book and periodNothing. The platform covers it.n/aplatform
Curves and market dataCurve storage and shapingVendor ingestion, snapshot versioning, reconciliationVolue · vendor feedsextended
Valuation and PnLRevaluation and attributionNothing. The platform covers it.n/aplatform
Schedule exportSchedule recordsCollects and aggregates schedule data, validates it, exports it to the nomination systemDeltaxe · GMLS · DispoEnergybuilt
Settlement and invoicingInvoice generationNetting rules per counterparty, dispute statesflat files · APIextended
EMIR and REMIT reportingData extractionValidation, submission, rejection loops, evidence trailACER XMLbuilt

Where the depth column reads platform, we leave it alone. Claiming every module would be easier and less useful to you.

01

Custom Coral apps

Applications that run inside Coral and follow how your desk actually works, rather than how a generic workflow assumes it does.

02

Integrations

Exchanges and market-data vendors in, the nomination system out. The same seams as everywhere else, with one side of them already familiar.

03

Product development

Reusable Coral extensions built to commercial standard, so they survive a platform upgrade instead of living in one client's branch.

07 / HOW WE WORK

  1. STEP 01

    Read the system first

    The first week is schema, event log and the last three incident reports. We write code in week two, not day two.

  2. STEP 02

    Trunk-based and reviewed

    Small pull requests into your branch strategy. Domain tests named after real market cases, not mocks of themselves.

  3. STEP 03

    The code is yours

    Your repository, your licence, from the first commit. No wrapper library only we can maintain, no runtime we host.

  4. STEP 04

    Handover is the deliverable

    Decision records, a runbook for anything that runs before market open, and a walkthrough until your team can change it without us.

08 / CONTACT

Name the module. We will tell you what it takes.

A reply within two working days from an engineer who has built that part before. If it is outside what we do, we say so in the first message.

contact
Marcin Fituch, business development
email
marcin.fituch@algoforte.com
entity
Algoforte sp. z o.o., Kraków, PL
hours
CET / CEST, 09:00–18:00

NDA on request before the first technical call. We are used to reading someone else’s schema first.

Used only to reply. Never added to a list.