From e276f6a2387a55c77f4b5e0f8c721f59fb28e82a Mon Sep 17 00:00:00 2001 From: Frida Eriksson Date: Tue, 21 Oct 2025 09:31:06 +0200 Subject: [PATCH 1/7] Feed in revenue --- src/registry/sweden/affarsverken_elnat_ab.rs | 5 ++++- src/registry/sweden/alingsas_energi_elnat_ab.rs | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/registry/sweden/affarsverken_elnat_ab.rs b/src/registry/sweden/affarsverken_elnat_ab.rs index 2c732bb5..f99c75a7 100644 --- a/src/registry/sweden/affarsverken_elnat_ab.rs +++ b/src/registry/sweden/affarsverken_elnat_ab.rs @@ -11,6 +11,9 @@ pub static AFFARSVERKEN_ELNAT_AB: GridOperator = GridOperator::builder() "https://www.affarsverken.se/elnat/elnatspriser/privatkund/", "#content-body", ) + .feed_in_revenue_info_default( + "https://www.affarsverken.se/elnat/for-elproducenter/ersattning-for-elproduktion/", + ) .build(), ) .price_lists(&[PriceList::builder() @@ -24,7 +27,7 @@ pub static AFFARSVERKEN_ELNAT_AB: GridOperator = GridOperator::builder() (63, Money::new(2010, 0)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(7.5)) .transfer_fee(TransferFee::spot_price_variable(31.60, 0.077, false)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/alingsas_energi_elnat_ab.rs b/src/registry/sweden/alingsas_energi_elnat_ab.rs index 19d37833..291cc166 100644 --- a/src/registry/sweden/alingsas_energi_elnat_ab.rs +++ b/src/registry/sweden/alingsas_energi_elnat_ab.rs @@ -7,7 +7,11 @@ pub static ALINGSAS_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE559434718801") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(25, 63)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default("https://www.alingsasenergi.se/elnatsavgift/ ") + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ From 68ae33556ef4edfcfb5fac3def03ac373d554f0f Mon Sep 17 00:00:00 2001 From: Frida Eriksson Date: Fri, 24 Oct 2025 09:50:36 +0200 Subject: [PATCH 2/7] Feed in revenue --- src/registry/sweden/ale_el_elnat_ab.rs | 1 + src/registry/sweden/alingsas_energi_elnat_ab.rs | 3 ++- src/registry/sweden/arvika_elnat_ab.rs | 11 +++++++++-- src/registry/sweden/bjare_kraft_elnat_ab.rs | 6 ++++-- src/registry/sweden/blasjon_nat_ab.rs | 11 +++++++++-- src/registry/sweden/borlange_energi_elnat_ab.rs | 3 ++- src/registry/sweden/bromolla_energi_vatten_ab.rs | 11 +++++++++-- src/registry/sweden/btea.rs | 3 ++- src/registry/sweden/dala_energi_elnat_ab.rs | 3 ++- src/registry/sweden/degerfors_elnat_ab.rs | 9 +++++++-- src/registry/sweden/emmaboda_elnat_ab.rs | 11 +++++++++-- src/registry/sweden/falbygdens_energi.rs | 5 ++++- src/registry/sweden/filipstad_energinat_ab.rs | 11 +++++++++-- src/registry/sweden/gavle_energi_elnat_ab.rs | 7 ++++++- src/registry/sweden/gotene_elforening.rs | 9 +++++++-- src/registry/sweden/gotlands_elnat_ab.rs | 1 + src/registry/sweden/habo_energi_kraft_ab.rs | 1 + src/registry/sweden/partille_energi.rs | 2 +- 18 files changed, 85 insertions(+), 23 deletions(-) diff --git a/src/registry/sweden/ale_el_elnat_ab.rs b/src/registry/sweden/ale_el_elnat_ab.rs index 1c0ea88e..024aede9 100644 --- a/src/registry/sweden/ale_el_elnat_ab.rs +++ b/src/registry/sweden/ale_el_elnat_ab.rs @@ -8,6 +8,7 @@ pub static ALE_EL_ELNAT_AB: GridOperator = GridOperator::builder() .links( Links::builder() .fee_info("https://aleel.se/avgifter/", "main") + .feed_in_revenue_info_default("https://aleel.se/mikroproduktion-och-batterilager/") .build(), ) .price_lists(&[PriceList::builder() diff --git a/src/registry/sweden/alingsas_energi_elnat_ab.rs b/src/registry/sweden/alingsas_energi_elnat_ab.rs index 291cc166..15c992a6 100644 --- a/src/registry/sweden/alingsas_energi_elnat_ab.rs +++ b/src/registry/sweden/alingsas_energi_elnat_ab.rs @@ -9,7 +9,8 @@ pub static ALINGSAS_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() .main_fuses(MainFuseSizes::new_range(25, 63)) .links( Links::builder() - .fee_info_default("https://www.alingsasenergi.se/elnatsavgift/ ") + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://www.alingsasenergi.se/elnatsavgift/") .build(), ) .price_lists(&[PriceList::builder() diff --git a/src/registry/sweden/arvika_elnat_ab.rs b/src/registry/sweden/arvika_elnat_ab.rs index 38219f1d..89767aaf 100644 --- a/src/registry/sweden/arvika_elnat_ab.rs +++ b/src/registry/sweden/arvika_elnat_ab.rs @@ -7,7 +7,14 @@ pub static ARVIKA_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556527671301") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 63)) - .links(Links::builder().fee_info(FEE_LINK, ".pagecontent").build()) + .links( + Links::builder() + .fee_info(FEE_LINK, ".pagecontent") + .feed_in_revenue_info_default( + "https://www.teknikivast.se/sidor/elnat/solcellsanlaggning-mikroproduktion.html", + ) + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -19,7 +26,7 @@ pub static ARVIKA_ELNAT_AB: GridOperator = GridOperator::builder() (63, Money::new(19875, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(3.65)) .transfer_fee(TransferFee::fixed_subunit(24.9)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/bjare_kraft_elnat_ab.rs b/src/registry/sweden/bjare_kraft_elnat_ab.rs index d1cf74fd..43c49dd2 100644 --- a/src/registry/sweden/bjare_kraft_elnat_ab.rs +++ b/src/registry/sweden/bjare_kraft_elnat_ab.rs @@ -7,7 +7,9 @@ pub static BJARE_KRAFT_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE559427724501") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 200)) - .links(Links::builder().fee_info(FEE_LINK, ".news-article").build()) + .links(Links::builder().fee_info(FEE_LINK, ".news-article") + .feed_in_revenue_info_default("https://www.bjarekraft.se/privat/elnat/producera-egen-el/saelj-ditt-oeverskott-av-solel") + .build()) .price_lists(&[PriceList::builder() .from_date(2025, 2, 1) .monthly_fee(Cost::fuses(&[ @@ -24,7 +26,7 @@ pub static BJARE_KRAFT_ELNAT_AB: GridOperator = GridOperator::builder() (200, Money::new(9866, 0)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(5.3)) .transfer_fee(TransferFee::fixed_subunit(19.3)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/blasjon_nat_ab.rs b/src/registry/sweden/blasjon_nat_ab.rs index d832fb18..2b73ddc7 100644 --- a/src/registry/sweden/blasjon_nat_ab.rs +++ b/src/registry/sweden/blasjon_nat_ab.rs @@ -7,7 +7,14 @@ pub static BLASJON_NAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556061917201") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 630)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default( + "https://www.blasjonnat.se/elnat/46424.mikroproduktion.html", + ) + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -30,7 +37,7 @@ pub static BLASJON_NAT_AB: GridOperator = GridOperator::builder() (630, Money::new(451622, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(2.0)) .transfer_fee(TransferFee::fixed_subunit(27.81)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/borlange_energi_elnat_ab.rs b/src/registry/sweden/borlange_energi_elnat_ab.rs index 374ffb7e..d2891c95 100644 --- a/src/registry/sweden/borlange_energi_elnat_ab.rs +++ b/src/registry/sweden/borlange_energi_elnat_ab.rs @@ -11,6 +11,7 @@ pub static BORLANGE_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() "https://www.borlange-energi.se/elnat/vad-kostar-elnatet", "main", ) + .feed_in_revenue_info_default("https://www.borlange-energi.se/elnat/egen-elproduktion") .build(), ) .price_lists(&[PriceList::builder() @@ -24,7 +25,7 @@ pub static BORLANGE_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() (63, Money::new(6050, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(3.5)) .transfer_fee(TransferFee::Simple(Cost::fuses(&[ (16, Money::new_subunit(32.0)), (20, Money::new_subunit(31.0)), diff --git a/src/registry/sweden/bromolla_energi_vatten_ab.rs b/src/registry/sweden/bromolla_energi_vatten_ab.rs index d6398b35..d2d90c53 100644 --- a/src/registry/sweden/bromolla_energi_vatten_ab.rs +++ b/src/registry/sweden/bromolla_energi_vatten_ab.rs @@ -7,12 +7,19 @@ pub static BROMOLLA_ENERGI_VATTEN_AB: GridOperator = GridOperator::builder() .vat_number("SE556525863801") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 63)) - .links(Links::builder().fee_info(FEE_LINK, "#wrapper").build()) + .links( + Links::builder() + .fee_info(FEE_LINK, "#wrapper") + .feed_in_revenue_info_default( + "https://www.bromolla.se/bevab/om-elmarknaden-och-elnat/elpriser/", + ) + .build(), + ) .price_lists(&[PriceList::builder() .from_date(9999, 12, 31) .monthly_fee(Cost::Unverified) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(13.0)) .transfer_fee(TransferFee::Unverified) .power_tariff(PowerTariff::Unverified) .build()]) diff --git a/src/registry/sweden/btea.rs b/src/registry/sweden/btea.rs index 88c41889..4974cf9e 100644 --- a/src/registry/sweden/btea.rs +++ b/src/registry/sweden/btea.rs @@ -8,6 +8,7 @@ pub static BTEA: GridOperator = GridOperator::builder() .links( Links::builder() .fee_info("https://www.btea.se/elnat/elnatspriser", "table") + .feed_in_revenue_info_default("https://www.btea.se/elnat/mikroproduktion") .build(), ) .price_lists(&[PriceList::builder() @@ -21,7 +22,7 @@ pub static BTEA: GridOperator = GridOperator::builder() (63, Money::new(22720, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(6.5)) .transfer_fee(TransferFee::Simple(Cost::fixed_subunit(2.50))) .power_tariff(PowerTariff::new( // TODO: We need to differentiate between high load and low load hours..., Not day and night... diff --git a/src/registry/sweden/dala_energi_elnat_ab.rs b/src/registry/sweden/dala_energi_elnat_ab.rs index e51e1de1..8bf7e795 100644 --- a/src/registry/sweden/dala_energi_elnat_ab.rs +++ b/src/registry/sweden/dala_energi_elnat_ab.rs @@ -8,6 +8,7 @@ pub static DALA_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() .links( Links::builder() .fee_info("https://dalaenergi.se/el/avgift/", "*:has(> #priser)") + .feed_in_revenue_info_default("https://dalaenergi.se/el/avgift/") .build(), ) .price_lists(&[PriceList::builder() @@ -21,7 +22,7 @@ pub static DALA_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() (63, Money::new(18000, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(7.5)) .transfer_fee(TransferFee::fixed_subunit(8.0)) .power_tariff(PowerTariff::new( TariffCalculationMethod::AverageHours(3), diff --git a/src/registry/sweden/degerfors_elnat_ab.rs b/src/registry/sweden/degerfors_elnat_ab.rs index 635739d2..ae8579c8 100644 --- a/src/registry/sweden/degerfors_elnat_ab.rs +++ b/src/registry/sweden/degerfors_elnat_ab.rs @@ -7,12 +7,17 @@ pub static DEGERFORS_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE559440444301") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 63)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://degerforsenergi.se/elnat/solel/") + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2024, 9, 1) .monthly_fee(Cost::fixed(3000, 0)) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(5.0)) .transfer_fee(TransferFee::fixed_subunit(17.5)) .power_tariff(PowerTariff::new( TariffCalculationMethod::AverageHours(1), diff --git a/src/registry/sweden/emmaboda_elnat_ab.rs b/src/registry/sweden/emmaboda_elnat_ab.rs index 008fe7c7..d787e6d5 100644 --- a/src/registry/sweden/emmaboda_elnat_ab.rs +++ b/src/registry/sweden/emmaboda_elnat_ab.rs @@ -7,7 +7,14 @@ pub static EMMABODA_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556459927101") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 250)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default( + "https://www.emmabodaenergi.se/elnat/mikroproducent/ersattning-for-natnytta.html", + ) + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -25,7 +32,7 @@ pub static EMMABODA_ELNAT_AB: GridOperator = GridOperator::builder() (250, Money::new(108375, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(6.5)) .transfer_fee(TransferFee::fixed_subunit(32.87)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/falbygdens_energi.rs b/src/registry/sweden/falbygdens_energi.rs index e36ef775..b26ad122 100644 --- a/src/registry/sweden/falbygdens_energi.rs +++ b/src/registry/sweden/falbygdens_energi.rs @@ -11,13 +11,16 @@ pub static FALBYGDENS_ENERGI: GridOperator = GridOperator::builder() "https://falbygdensenergi.se/privat/vart-elnat/elnatsavgifter-samt-villkor", ".pagecontent", ) + .feed_in_revenue_info_default( + "https://falbygdensenergi.se/foretag/elnatsavgifter/prislista-for-producenter", + ) .build(), ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fixed(343, 42)) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(3.02)) .transfer_fee(TransferFee::fixed_subunit(37.2)) .power_tariff(PowerTariff::new( TariffCalculationMethod::AverageDaysDifferentiated { base: 1, peak: 1 }, diff --git a/src/registry/sweden/filipstad_energinat_ab.rs b/src/registry/sweden/filipstad_energinat_ab.rs index 8417d328..e63e336b 100644 --- a/src/registry/sweden/filipstad_energinat_ab.rs +++ b/src/registry/sweden/filipstad_energinat_ab.rs @@ -7,7 +7,14 @@ pub static FILIPSTAD_ENERGINAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556517499101") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 63)) - .links(Links::builder().fee_info(FEE_LINK, ".pagecontent").build()) + .links( + Links::builder() + .fee_info(FEE_LINK, ".pagecontent") + .feed_in_revenue_info_default( + "https://www.filipstadenerginat.se/forkunder/avgifterochvillkor.64.html", + ) + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -19,7 +26,7 @@ pub static FILIPSTAD_ENERGINAT_AB: GridOperator = GridOperator::builder() (63, Money::new(1730, 0)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(2.62)) .transfer_fee(TransferFee::fixed_subunit(30.75)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/gavle_energi_elnat_ab.rs b/src/registry/sweden/gavle_energi_elnat_ab.rs index 976a366c..e1920996 100644 --- a/src/registry/sweden/gavle_energi_elnat_ab.rs +++ b/src/registry/sweden/gavle_energi_elnat_ab.rs @@ -7,7 +7,12 @@ pub static GAVLE_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE559397122801") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 50)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://www.gavleenergi.se/elnat/elnatspriser/") + .build(), + ) .price_lists(&[ PriceList::builder() .variant("Standard") diff --git a/src/registry/sweden/gotene_elforening.rs b/src/registry/sweden/gotene_elforening.rs index 1437c78b..b69b6e39 100644 --- a/src/registry/sweden/gotene_elforening.rs +++ b/src/registry/sweden/gotene_elforening.rs @@ -7,7 +7,12 @@ pub static GOTENE_ELFORENING: GridOperator = GridOperator::builder() .vat_number("SE769000061201") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 63)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://kinnekulleenergi.se/mikroproduktion/") + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -19,7 +24,7 @@ pub static GOTENE_ELFORENING: GridOperator = GridOperator::builder() (63, Money::new(29420, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(2.4)) .transfer_fee(TransferFee::fixed_subunit(23.13)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/gotlands_elnat_ab.rs b/src/registry/sweden/gotlands_elnat_ab.rs index da0c494c..1827d6fb 100644 --- a/src/registry/sweden/gotlands_elnat_ab.rs +++ b/src/registry/sweden/gotlands_elnat_ab.rs @@ -29,6 +29,7 @@ pub static GOTLANDS_ELNAT_AB: GridOperator = GridOperator::builder() "https://geab.se/elnat/avgift/elnatspriser/", r#"[data-elementor-post-type="page"] > section:nth-child(n + 4)"#, ) + .feed_in_revenue_info_default("https://geab.se/elnat/avgift/elnatspriser/") .build(), ) .price_lists(&[ diff --git a/src/registry/sweden/habo_energi_kraft_ab.rs b/src/registry/sweden/habo_energi_kraft_ab.rs index d2cd843a..e50ea9e1 100644 --- a/src/registry/sweden/habo_energi_kraft_ab.rs +++ b/src/registry/sweden/habo_energi_kraft_ab.rs @@ -10,6 +10,7 @@ pub static HABO_ENERGI_KRAFT_AB: GridOperator = GridOperator::builder() .links( Links::builder() .fee_info(FEE_LINK, "[data-elementor-type='wp-page']") + .feed_in_revenue_info_default("https://www.haboenergi.se/natavgiften-privat/") .build(), ) .price_lists(&[PriceList::builder() diff --git a/src/registry/sweden/partille_energi.rs b/src/registry/sweden/partille_energi.rs index d329d917..3cd3e0f8 100644 --- a/src/registry/sweden/partille_energi.rs +++ b/src/registry/sweden/partille_energi.rs @@ -14,7 +14,7 @@ pub static PARTILLE_ENERGI: GridOperator = GridOperator::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fixed_yearly(1875, 0)) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(7.5)) .transfer_fee(TransferFee::fixed_subunit(30.50)) .power_tariff(PowerTariff::new( TariffCalculationMethod::AverageHours(1), From f96c00aa35156eb95ac34e5ba2c02a81e59c0908 Mon Sep 17 00:00:00 2001 From: Frida Eriksson Date: Mon, 27 Oct 2025 11:09:30 +0100 Subject: [PATCH 3/7] feed in revenue --- src/registry/sweden/ale_el_elnat_ab.rs | 13 ++++++++++++- src/registry/sweden/bjarke_energi.rs | 17 ++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/registry/sweden/ale_el_elnat_ab.rs b/src/registry/sweden/ale_el_elnat_ab.rs index 024aede9..b59ec8b6 100644 --- a/src/registry/sweden/ale_el_elnat_ab.rs +++ b/src/registry/sweden/ale_el_elnat_ab.rs @@ -27,7 +27,18 @@ pub static ALE_EL_ELNAT_AB: GridOperator = GridOperator::builder() (200, Money::new(6101, 0)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::new_periods(CostPeriods::new(&[ + CostPeriod::builder() + .load(High) + .cost(Cost::fixed_subunit(8.7).add_vat(Country::SE)) + .months(November, March) + .hours(06, 21) + .build(), + CostPeriod::builder() + .load(Low) + .cost(Cost::fixed_subunit(1.5).add_vat(Country::SE)) + .build(), + ]))) .transfer_fee(TransferFee::fixed_subunit(25.00)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/bjarke_energi.rs b/src/registry/sweden/bjarke_energi.rs index fc574554..5bb12566 100644 --- a/src/registry/sweden/bjarke_energi.rs +++ b/src/registry/sweden/bjarke_energi.rs @@ -11,6 +11,9 @@ pub static BJARKE_ENERGI: GridOperator = GridOperator::builder() "https://www.bjerke-energi.se/elnat/tariffer/normaltariff/", "h2 ~ table", ) + .feed_in_revenue_info_default( + "https://www.bjerke-energi.se/elnat/tariffer/producenttariff/", + ) .build(), ) .price_lists(&[PriceList::builder() @@ -24,7 +27,19 @@ pub static BJARKE_ENERGI: GridOperator = GridOperator::builder() (63, Money::new(1000, 0)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::new_periods(CostPeriods::new(&[ + CostPeriod::builder() + .load(High) + .cost(Cost::fixed_subunit(7.5)) + .months(November, March) + .exclude_weekends() + .hours(06, 21) + .build(), + CostPeriod::builder() + .load(Low) + .cost(Cost::fixed_subunit(5.0)) + .build(), + ]))) .transfer_fee(TransferFee::new_periods(CostPeriods::new(&[ CostPeriod::builder() .load(High) From ee11e1f059274b8314abe21c4cc8defc8dcd55b5 Mon Sep 17 00:00:00 2001 From: Frida Eriksson Date: Wed, 29 Oct 2025 10:47:01 +0100 Subject: [PATCH 4/7] feed in revenue --- src/registry/sweden/harnosand_elnat_ab.rs | 7 +++++- src/registry/sweden/hedemora_energi_ab.rs | 6 +++-- .../sweden/hjartums_elforening_ek_for.rs | 23 +++++++++++++++++-- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/registry/sweden/harnosand_elnat_ab.rs b/src/registry/sweden/harnosand_elnat_ab.rs index 54e32dd4..4d911dad 100644 --- a/src/registry/sweden/harnosand_elnat_ab.rs +++ b/src/registry/sweden/harnosand_elnat_ab.rs @@ -13,6 +13,9 @@ pub static HARNOSAND_ELNAT_AB: GridOperator = GridOperator::builder() "https://www.hemab.se/elnat/priserelnat2025.4.5382fcb418e57c1263662e9b.html", ".pagecontent", ) + .feed_in_revenue_info_default( + "https://www.hemab.se/elnat/priserelnat2025.4.5382fcb418e57c1263662e9b.html", + ) .build(), ) .price_lists(&[PriceList::builder() @@ -31,7 +34,9 @@ pub static HARNOSAND_ELNAT_AB: GridOperator = GridOperator::builder() (200, Money::new(65663, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::Simple(Cost::Fixed( + Money::new_subunit(1.75).add_vat(Country::SE), + ))) .transfer_fee(TransferFee::fixed_subunit(13.20)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/hedemora_energi_ab.rs b/src/registry/sweden/hedemora_energi_ab.rs index 05f44911..b275096a 100644 --- a/src/registry/sweden/hedemora_energi_ab.rs +++ b/src/registry/sweden/hedemora_energi_ab.rs @@ -7,7 +7,9 @@ pub static HEDEMORA_ENERGI_AB: GridOperator = GridOperator::builder() .vat_number("SE556115522601") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 500)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links(Links::builder().fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://www.hedemoraenergi.se/el/fordjupad-information-om-el/natnytta-och-ersattningar/") + .build()) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -30,7 +32,7 @@ pub static HEDEMORA_ENERGI_AB: GridOperator = GridOperator::builder() (500, Money::new(104175, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(3.0)) .transfer_fee(TransferFee::fixed_subunit(29.56)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/hjartums_elforening_ek_for.rs b/src/registry/sweden/hjartums_elforening_ek_for.rs index 24aecf9b..388886ec 100644 --- a/src/registry/sweden/hjartums_elforening_ek_for.rs +++ b/src/registry/sweden/hjartums_elforening_ek_for.rs @@ -6,7 +6,19 @@ const FEE_LINK: &str = const BASE_PRICELIST: PriceListBuilder = PriceListBuilder::new() .from_date(2025, 1, 1) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::new_periods(CostPeriods::new(&[ + CostPeriod::builder() + .load(High) + .cost(Cost::fixed_subunit(8.94)) + .months(November, March) + .exclude_weekends() + .hours(06, 21) + .build(), + CostPeriod::builder() + .load(Low) + .cost(Cost::fixed_subunit(5.59)) + .build(), + ]))) .power_tariff(PowerTariff::NotImplemented); pub static HJARTUMS_ELFORENING_EK_FOR: GridOperator = GridOperator::builder() @@ -14,7 +26,14 @@ pub static HJARTUMS_ELFORENING_EK_FOR: GridOperator = GridOperator::builder() .vat_number("SE758500053701") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 500)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default( + "https://www.hjartumselforening.se/elnat/natariff/natnyttoersattning/", + ) + .build(), + ) .price_lists(&[ BASE_PRICELIST .variant("Enkeltariff") From 7236502e5dcc513afea2554a3e866ec90a8cd4cb Mon Sep 17 00:00:00 2001 From: Frida Eriksson Date: Wed, 29 Oct 2025 15:55:21 +0100 Subject: [PATCH 5/7] feed in revenue --- src/registry/sweden/karlsborgs_elnat_ab.rs | 11 +++++++++-- src/registry/sweden/karlskoga_elnat_ab.rs | 5 ++++- src/registry/sweden/kristinehamns_energi.rs | 5 ++++- src/registry/sweden/lerum_nat_ab.rs | 2 +- src/registry/sweden/lidkoping_elnat_ab.rs | 3 ++- src/registry/sweden/ljungby_energinat_ab.rs | 9 +++++++-- src/registry/sweden/ljusdal_elnat_ab.rs | 11 +++++++++-- src/registry/sweden/lulea_energi_elnat_ab.rs | 3 ++- src/registry/sweden/mjolby_kraftnat_ab.rs | 5 ++++- src/registry/sweden/nacka_energi.rs | 11 +++++++++-- src/registry/sweden/nassjo_affarsverk_elnat_ab.rs | 9 +++++++-- src/registry/sweden/natkraft_boras_infra_ab.rs | 3 ++- src/registry/sweden/njudung_savsjo_elnat_ab.rs | 9 +++++++-- src/registry/sweden/njudung_vetlanda_elnat_ab.rs | 9 +++++++-- src/registry/sweden/nybro_elnat_ab.rs | 9 ++++++++- 15 files changed, 82 insertions(+), 22 deletions(-) diff --git a/src/registry/sweden/karlsborgs_elnat_ab.rs b/src/registry/sweden/karlsborgs_elnat_ab.rs index 232c4135..18f66dd3 100644 --- a/src/registry/sweden/karlsborgs_elnat_ab.rs +++ b/src/registry/sweden/karlsborgs_elnat_ab.rs @@ -7,7 +7,14 @@ pub static KARLSBORGS_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE559434970501") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 200)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default( + "https://www.karlsborgsenergi.se/elnat/mikroproduktion-2/", + ) + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -24,7 +31,7 @@ pub static KARLSBORGS_ELNAT_AB: GridOperator = GridOperator::builder() (200, Money::new(51023, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(5.0)) .transfer_fee(TransferFee::fixed_subunit(22.0)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/karlskoga_elnat_ab.rs b/src/registry/sweden/karlskoga_elnat_ab.rs index 7500c30f..0cb3a50e 100644 --- a/src/registry/sweden/karlskoga_elnat_ab.rs +++ b/src/registry/sweden/karlskoga_elnat_ab.rs @@ -11,6 +11,9 @@ pub static KARLSKOGA_ELNAT_AB: GridOperator = GridOperator::builder() "https://www.karlskogaenergi.se/Vara-tjanster/elnat/priser-och-avtalsvillkor/", "#mainContent", ) + .feed_in_revenue_info_default( + "https://www.karlskogaenergi.se/Vara-tjanster/elnat/solceller/", + ) .build(), ) .price_lists(&[PriceList::builder() @@ -24,7 +27,7 @@ pub static KARLSKOGA_ELNAT_AB: GridOperator = GridOperator::builder() (63, Money::new(15299, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(3.4)) .transfer_fee(TransferFee::fixed_subunit(18.90)) .power_tariff(PowerTariff::new( TariffCalculationMethod::AverageHours(1), diff --git a/src/registry/sweden/kristinehamns_energi.rs b/src/registry/sweden/kristinehamns_energi.rs index 94e2a790..708969cf 100644 --- a/src/registry/sweden/kristinehamns_energi.rs +++ b/src/registry/sweden/kristinehamns_energi.rs @@ -11,13 +11,16 @@ pub static KRISTINEHAMNS_ENERGI: GridOperator = GridOperator::builder() "https://kristinehamnsenergi.se/elnat/elnatsavgiften/din-elnatsavgift/", "section", ) + .feed_in_revenue_info_default( + "https://kristinehamnsenergi.se/kundtjanst/nyhetbrev/att-producera-egen-el/", + ) .build(), ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fixed(277, 50)) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(3.2)) .transfer_fee(TransferFee::fixed_subunit(12.75)) .power_tariff(PowerTariff::new( TariffCalculationMethod::AverageHours(1), diff --git a/src/registry/sweden/lerum_nat_ab.rs b/src/registry/sweden/lerum_nat_ab.rs index 077260b9..2500ebf3 100644 --- a/src/registry/sweden/lerum_nat_ab.rs +++ b/src/registry/sweden/lerum_nat_ab.rs @@ -41,7 +41,7 @@ pub static LERUM_NAT_AB: GridOperator = GridOperator::builder() (640, Money::new(91963, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(6.5)) .transfer_fee(TransferFee::fixed_subunit(38.95)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/lidkoping_elnat_ab.rs b/src/registry/sweden/lidkoping_elnat_ab.rs index 5842e6f4..56cc9b92 100644 --- a/src/registry/sweden/lidkoping_elnat_ab.rs +++ b/src/registry/sweden/lidkoping_elnat_ab.rs @@ -10,6 +10,7 @@ pub static LIDKOPING_ELNAT_AB: GridOperator = GridOperator::builder() .links( Links::builder() .fee_info(FEE_URL, "#h-Elnatsavgifter + *") + .feed_in_revenue_info_default("https://lidkoping.se/lidkoping-miljo-och-teknik-ab/start/elnat-och-elforsorjning/producera-din-egen-el") .build(), ) .price_lists(&[PriceList::builder() @@ -23,7 +24,7 @@ pub static LIDKOPING_ELNAT_AB: GridOperator = GridOperator::builder() (63, Money::new(18350, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(2.5)) .transfer_fee(TransferFee::fixed_subunit(14.1)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/ljungby_energinat_ab.rs b/src/registry/sweden/ljungby_energinat_ab.rs index 9cc4af82..8b245d6f 100644 --- a/src/registry/sweden/ljungby_energinat_ab.rs +++ b/src/registry/sweden/ljungby_energinat_ab.rs @@ -7,7 +7,12 @@ pub static LJUNGBY_ENERGINAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556082399801") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 63)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://ljungby-energi.se/elnat/mikroproduktion/") + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -24,7 +29,7 @@ pub static LJUNGBY_ENERGINAT_AB: GridOperator = GridOperator::builder() (200, Money::new(104808, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(6.0)) .transfer_fee(TransferFee::spot_price_variable(8.5, 0.09, false)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/ljusdal_elnat_ab.rs b/src/registry/sweden/ljusdal_elnat_ab.rs index d507559e..eb16d622 100644 --- a/src/registry/sweden/ljusdal_elnat_ab.rs +++ b/src/registry/sweden/ljusdal_elnat_ab.rs @@ -7,7 +7,14 @@ pub static LJUSDAL_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556509989101") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 63)) - .links(Links::builder().fee_info(FEE_LINK, ".pagecontent").build()) + .links( + Links::builder() + .fee_info(FEE_LINK, ".pagecontent") + .feed_in_revenue_info_default( + "https://www.ljusdalenergi.se/elnat/natpriser/natnytta.html", + ) + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -19,7 +26,7 @@ pub static LJUSDAL_ELNAT_AB: GridOperator = GridOperator::builder() (63, Money::new(19905, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(2.5)) .transfer_fee(TransferFee::fixed_subunit(17.50)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/lulea_energi_elnat_ab.rs b/src/registry/sweden/lulea_energi_elnat_ab.rs index ee81f487..a6ef7cb2 100644 --- a/src/registry/sweden/lulea_energi_elnat_ab.rs +++ b/src/registry/sweden/lulea_energi_elnat_ab.rs @@ -11,6 +11,7 @@ pub static LULEA_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() .links( Links::builder() .fee_info(FEE_LINK, "main section:first-of-type") + .feed_in_revenue_info_default("https://www.luleaenergi.se/produktion-och-infrastruktur/elnat/natpriser-och-avtalsvillkor") .build(), ) .price_lists(&[PriceList::builder() @@ -30,7 +31,7 @@ pub static LULEA_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() (250, Money::new(101820, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(2.0)) .transfer_fee(TransferFee::Simple(Cost::fuse_range(&[ (16, 16, Money::new_subunit(17.5)), (20, 250, Money::ZERO), diff --git a/src/registry/sweden/mjolby_kraftnat_ab.rs b/src/registry/sweden/mjolby_kraftnat_ab.rs index 93cc0a56..73b1e4dd 100644 --- a/src/registry/sweden/mjolby_kraftnat_ab.rs +++ b/src/registry/sweden/mjolby_kraftnat_ab.rs @@ -11,13 +11,16 @@ pub static MJOLBY_KRAFTNAT_AB: GridOperator = GridOperator::builder() "https://www.mse.se/kundservice/priser-och-avtal/priser-elnat-2025/", "#abonnemangspriser", ) + .feed_in_revenue_info_default("https://www.mse.se/kundservice/priser-och-avtal/ersattning-avgifter-egen-elproduktion-elnat-2025/") .build(), ) .price_lists(&[PriceList::builder() .from_date(9999, 12, 31) .monthly_fee(Cost::Unverified) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::Simple(Cost::Fixed( + Money::new_subunit(4.5).add_vat(Country::SE), + ))) .transfer_fee(TransferFee::Unverified) .power_tariff(PowerTariff::Unverified) .build()]) diff --git a/src/registry/sweden/nacka_energi.rs b/src/registry/sweden/nacka_energi.rs index 3112ac17..80c042ec 100644 --- a/src/registry/sweden/nacka_energi.rs +++ b/src/registry/sweden/nacka_energi.rs @@ -8,7 +8,14 @@ pub static NACKA_ENERGI: GridOperator = GridOperator::builder() .vat_number("SE556017953201") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 80)) // 80A - LSP also shares the same tariff (what is max for LSP?) - .links(Links::builder().fee_info(FEE_LINK, "main").build()) + .links( + Links::builder() + .fee_info(FEE_LINK, "main") + .feed_in_revenue_info_default( + "https://www.nackaenergi.se/elnat/bygga-och-installera/installera-solceller", + ) + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 7, 1) .monthly_fee(Cost::fuses(&[ @@ -21,7 +28,7 @@ pub static NACKA_ENERGI: GridOperator = GridOperator::builder() (80, Money::new(2212, 67)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(3.7)) .transfer_fee(TransferFee::new_periods(CostPeriods::new(&[ CostPeriod::builder() .load(High) diff --git a/src/registry/sweden/nassjo_affarsverk_elnat_ab.rs b/src/registry/sweden/nassjo_affarsverk_elnat_ab.rs index 732b66e9..b251cd3e 100644 --- a/src/registry/sweden/nassjo_affarsverk_elnat_ab.rs +++ b/src/registry/sweden/nassjo_affarsverk_elnat_ab.rs @@ -7,7 +7,12 @@ pub static NASSJO_AFFARSVERK_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556526145901") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 200)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://www.nav.se/priser/elnat---priser#h-Elproduktion") + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -24,7 +29,7 @@ pub static NASSJO_AFFARSVERK_ELNAT_AB: GridOperator = GridOperator::builder() (200, Money::new(36225, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(6.25)) .transfer_fee(TransferFee::fixed_subunit(27.75)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/natkraft_boras_infra_ab.rs b/src/registry/sweden/natkraft_boras_infra_ab.rs index 172f69c5..530b90cd 100644 --- a/src/registry/sweden/natkraft_boras_infra_ab.rs +++ b/src/registry/sweden/natkraft_boras_infra_ab.rs @@ -8,6 +8,7 @@ pub static NATKRAFT_BORAS_INFRA_AB: GridOperator = GridOperator::builder() .links( Links::builder() .fee_info("https://natkraftboras.se/elnat/elnatsavtal/priser/", "main") + .feed_in_revenue_info_default("https://natkraftboras.se/elnat/elnatsavtal/priser/") .build(), ) .price_lists(&[PriceList::builder() @@ -26,7 +27,7 @@ pub static NATKRAFT_BORAS_INFRA_AB: GridOperator = GridOperator::builder() (200, Money::new(4235, 0)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(5.5)) .transfer_fee(TransferFee::Simple(Cost::fuse_range(&[ (16, 20, Money::new_subunit(12.56)), (25, 200, Money::new_subunit(6.0)), diff --git a/src/registry/sweden/njudung_savsjo_elnat_ab.rs b/src/registry/sweden/njudung_savsjo_elnat_ab.rs index 8c688207..bd319924 100644 --- a/src/registry/sweden/njudung_savsjo_elnat_ab.rs +++ b/src/registry/sweden/njudung_savsjo_elnat_ab.rs @@ -7,7 +7,12 @@ pub static NJUDUNG_SAVSJO_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556659628301") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 200)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://njudung.se/elnat/elnatsavgifter/") + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -24,7 +29,7 @@ pub static NJUDUNG_SAVSJO_ELNAT_AB: GridOperator = GridOperator::builder() (200, Money::new(58722, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(6.25)) .transfer_fee(TransferFee::fixed_subunit(36.96)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/njudung_vetlanda_elnat_ab.rs b/src/registry/sweden/njudung_vetlanda_elnat_ab.rs index 10406a72..20727e2c 100644 --- a/src/registry/sweden/njudung_vetlanda_elnat_ab.rs +++ b/src/registry/sweden/njudung_vetlanda_elnat_ab.rs @@ -7,7 +7,12 @@ pub static NJUDUNG_VETLANDA_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556819474901") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 200)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://njudung.se/elnat/elnatsavgifter/") + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -24,7 +29,7 @@ pub static NJUDUNG_VETLANDA_ELNAT_AB: GridOperator = GridOperator::builder() (200, Money::new(45302, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(6.25)) .transfer_fee(TransferFee::fixed_subunit(33.75)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/nybro_elnat_ab.rs b/src/registry/sweden/nybro_elnat_ab.rs index 6e53d568..1f4c9870 100644 --- a/src/registry/sweden/nybro_elnat_ab.rs +++ b/src/registry/sweden/nybro_elnat_ab.rs @@ -7,7 +7,14 @@ pub static NYBRO_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556058489701") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 200)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default( + "https://nybroenergi.se/vara-tjanster/el/prislista-elnat/", + ) + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ From d002412435c64033b83021061c5ada0397d21d4e Mon Sep 17 00:00:00 2001 From: Frida Eriksson Date: Thu, 30 Oct 2025 12:55:25 +0100 Subject: [PATCH 6/7] feed in revenue --- src/registry/sweden/ovik_energi_nat_ab.rs | 9 +++++++-- src/registry/sweden/partille_energi.rs | 3 ++- src/registry/sweden/ronneby_miljoteknik_elnat_ab.rs | 6 ++++-- src/registry/sweden/salaheby_energi_elnat_ab.rs | 8 ++++++-- src/registry/sweden/sevab_nat_ab.rs | 7 ++++++- src/registry/sweden/skara_elnat_ab.rs | 9 +++++++-- src/registry/sweden/skelleftea_kraft_elnat_ab.rs | 7 ++++++- src/registry/sweden/skovde_energi.rs | 5 +++-- src/registry/sweden/smedjebacken_energi_nat_ab.rs | 11 +++++++++-- src/registry/sweden/sollentuna_energi_miljo_ab.rs | 5 ++++- src/registry/sweden/sturefors_eldistribution_ab.rs | 11 +++++++++-- src/registry/sweden/tidaholms_elnat_ab.rs | 9 +++++++-- src/registry/sweden/tranas_energi_elnat_ab.rs | 11 +++++++++-- src/registry/sweden/uddevalla_energi_elnat_ab.rs | 5 ++++- src/registry/sweden/ulricehamn_energi_elnat_ab.rs | 7 ++++++- src/registry/sweden/umea_energi_elnat_ab.rs | 3 ++- src/registry/sweden/varberg_energi_elnat_ab.rs | 5 ++++- src/registry/sweden/varbergsortens_elnat_ab.rs | 13 +++++++++++-- src/registry/sweden/varnamo_elnat_ab.rs | 9 +++++++-- 19 files changed, 113 insertions(+), 30 deletions(-) diff --git a/src/registry/sweden/ovik_energi_nat_ab.rs b/src/registry/sweden/ovik_energi_nat_ab.rs index 226b112a..5b1de43c 100644 --- a/src/registry/sweden/ovik_energi_nat_ab.rs +++ b/src/registry/sweden/ovik_energi_nat_ab.rs @@ -7,7 +7,12 @@ pub static OVIK_ENERGI_NAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556527706701") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 63)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://www.ovikenergi.se/elnat/anslut-din-elproduktion") + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2024, 10, 1) .monthly_fee(Cost::fuses(&[ @@ -19,7 +24,7 @@ pub static OVIK_ENERGI_NAT_AB: GridOperator = GridOperator::builder() (63, Money::new(19161, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(1.0)) .transfer_fee(TransferFee::fixed_subunit(11.80)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/partille_energi.rs b/src/registry/sweden/partille_energi.rs index 3cd3e0f8..f9f03553 100644 --- a/src/registry/sweden/partille_energi.rs +++ b/src/registry/sweden/partille_energi.rs @@ -8,13 +8,14 @@ pub static PARTILLE_ENERGI: GridOperator = GridOperator::builder() .links( Links::builder() .fee_info("https://partilleenergi.se/elnat/", "#elnatsavtal") + .feed_in_revenue_info_default("https://partilleenergi.se/solel/#leverantor") .build(), ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fixed_yearly(1875, 0)) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::fixed_subunit(7.5)) + .feed_in_revenue(FeedInRevenue::fixed_subunit(8.75)) .transfer_fee(TransferFee::fixed_subunit(30.50)) .power_tariff(PowerTariff::new( TariffCalculationMethod::AverageHours(1), diff --git a/src/registry/sweden/ronneby_miljoteknik_elnat_ab.rs b/src/registry/sweden/ronneby_miljoteknik_elnat_ab.rs index 10df5c62..f7ea561c 100644 --- a/src/registry/sweden/ronneby_miljoteknik_elnat_ab.rs +++ b/src/registry/sweden/ronneby_miljoteknik_elnat_ab.rs @@ -7,7 +7,9 @@ pub static RONNEBY_MILJOTEKNIK_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE559015198001") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 200)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links(Links::builder().fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://www.ronneby.se/sidowebbplatser/miljoteknik/elnat/priser-villkor-for-elnat/ersattning-natnytta-mikroproducent.html") + .build()) .price_lists(&[ PriceList::builder() .variant("Tariff 2") @@ -26,7 +28,7 @@ pub static RONNEBY_MILJOTEKNIK_ELNAT_AB: GridOperator = GridOperator::builder() (200, Money::new(45568, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(7.0)) .transfer_fee(TransferFee::fixed_subunit(51.11)) .power_tariff(PowerTariff::NotImplemented) .build(), diff --git a/src/registry/sweden/salaheby_energi_elnat_ab.rs b/src/registry/sweden/salaheby_energi_elnat_ab.rs index cf0e00b9..3175477d 100644 --- a/src/registry/sweden/salaheby_energi_elnat_ab.rs +++ b/src/registry/sweden/salaheby_energi_elnat_ab.rs @@ -7,7 +7,9 @@ pub static SALAHEBY_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556181367501") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 200)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links(Links::builder().fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://sheab.se/wp-content/uploads/2025/02/Inmatningstariffer-fr.o.m.-2025-01-01-v1.pdf") + .build()) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -24,7 +26,9 @@ pub static SALAHEBY_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() (200, Money::new(36000, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::Simple(Cost::Fixed( + Money::new_subunit(6.72).add_vat(Country::SE), + ))) .transfer_fee(TransferFee::fixed_subunit(10.0)) .power_tariff(PowerTariff::new( TariffCalculationMethod::AverageHours(3), diff --git a/src/registry/sweden/sevab_nat_ab.rs b/src/registry/sweden/sevab_nat_ab.rs index e8aeee3f..5cbb7cd1 100644 --- a/src/registry/sweden/sevab_nat_ab.rs +++ b/src/registry/sweden/sevab_nat_ab.rs @@ -12,6 +12,9 @@ pub static SEVAB_NAT_AB: GridOperator = GridOperator::builder() "https://www.sevab.com/privat/elnat/priser-och-avgifter/priser-2025", ".article-content", ) + .feed_in_revenue_info_default( + "https://www.sevab.com/privat/elnat/priser-och-avgifter/priser-2025", + ) .build(), ) .price_lists(&[PriceList::builder() @@ -25,7 +28,9 @@ pub static SEVAB_NAT_AB: GridOperator = GridOperator::builder() (63, Money::new(17760, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::Simple(Cost::Fixed( + Money::new_subunit(4.2).add_vat(Country::SE), + ))) .transfer_fee(TransferFee::fixed_subunit(30.50)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/skara_elnat_ab.rs b/src/registry/sweden/skara_elnat_ab.rs index c1acc996..dc8d6440 100644 --- a/src/registry/sweden/skara_elnat_ab.rs +++ b/src/registry/sweden/skara_elnat_ab.rs @@ -7,7 +7,12 @@ pub static SKARA_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE559441591001") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 200)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://skaraenergi.se/elnat/mikroproduktion/") + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -24,7 +29,7 @@ pub static SKARA_ELNAT_AB: GridOperator = GridOperator::builder() (200, Money::new(43979, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(3.0)) .transfer_fee(TransferFee::fixed_subunit(22.50)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/skelleftea_kraft_elnat_ab.rs b/src/registry/sweden/skelleftea_kraft_elnat_ab.rs index 5ff649e6..c94a16d8 100644 --- a/src/registry/sweden/skelleftea_kraft_elnat_ab.rs +++ b/src/registry/sweden/skelleftea_kraft_elnat_ab.rs @@ -11,6 +11,9 @@ pub static SKELLEFTEA_KRAFT_ELNAT_AB: GridOperator = GridOperator::builder() "https://www.skekraft.se/privat/elnat/elnatspriser/", "section", ) + .feed_in_revenue_info_default( + "https://www.skekraft.se/privat/elnat/ansluta-mikroproduktion/", + ) .build(), ) .price_lists(&[PriceList::builder() @@ -24,7 +27,9 @@ pub static SKELLEFTEA_KRAFT_ELNAT_AB: GridOperator = GridOperator::builder() (63, Money::new(20965, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::Simple(Cost::Fixed( + Money::new_subunit(2.0).add_vat(Country::SE), + ))) .transfer_fee(TransferFee::fixed_subunit(11.0)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/skovde_energi.rs b/src/registry/sweden/skovde_energi.rs index 2640ca73..addffa3a 100644 --- a/src/registry/sweden/skovde_energi.rs +++ b/src/registry/sweden/skovde_energi.rs @@ -11,6 +11,7 @@ pub static SKOVDE_ENERGI: GridOperator = GridOperator::builder() "https://skovdeenergi.se/elnat/taxor-avgifter/elnatstaxa-priser-med-moms/", "main", ) + .feed_in_revenue_info_default("https://skovdeenergi.se/elnat/solceller/ersattning/S") .build(), ) .price_lists(&[PriceList::builder() @@ -24,13 +25,13 @@ pub static SKOVDE_ENERGI: GridOperator = GridOperator::builder() (63, Money::new(385, 92)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(2.4)) .transfer_fee(TransferFee::new_periods(CostPeriods::new(&[ CostPeriod::builder() .load(High) .cost(Cost::fuse_range(&[ (16, 25, Money::new_subunit(26.25)), - (35, 63, Money::new_subunit(20.)), + (35, 63, Money::new_subunit(20.0)), ])) .months(November, March) .hours(6, 22) diff --git a/src/registry/sweden/smedjebacken_energi_nat_ab.rs b/src/registry/sweden/smedjebacken_energi_nat_ab.rs index 860537ef..6747593e 100644 --- a/src/registry/sweden/smedjebacken_energi_nat_ab.rs +++ b/src/registry/sweden/smedjebacken_energi_nat_ab.rs @@ -7,7 +7,14 @@ pub static SMEDJEBACKEN_ENERGI_NAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556527871901") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 200)) - .links(Links::builder().fee_info(FEE_LINK, ".pagecontent").build()) + .links( + Links::builder() + .fee_info(FEE_LINK, ".pagecontent") + .feed_in_revenue_info_default( + "https://www.smedjebackenenergi.se/elnat/producera-egen-el.html", + ) + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -24,7 +31,7 @@ pub static SMEDJEBACKEN_ENERGI_NAT_AB: GridOperator = GridOperator::builder() (200, Money::new(38210, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(3.5)) .transfer_fee(TransferFee::fixed_subunit(26.25)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/sollentuna_energi_miljo_ab.rs b/src/registry/sweden/sollentuna_energi_miljo_ab.rs index 909857ed..674840b3 100644 --- a/src/registry/sweden/sollentuna_energi_miljo_ab.rs +++ b/src/registry/sweden/sollentuna_energi_miljo_ab.rs @@ -10,6 +10,7 @@ pub static SOLLENTUNA_ENERGI_MILJO_AB: GridOperator = GridOperator::builder() "https://www.seom.se/el/elnat/priser-och-villkor/", ".main-content-area", ) + .feed_in_revenue_info_default("https://www.seom.se/el/elnat/priser-och-villkor/") .build(), ) .price_lists(&[PriceList::builder() @@ -27,7 +28,9 @@ pub static SOLLENTUNA_ENERGI_MILJO_AB: GridOperator = GridOperator::builder() (200, Money::new(1330, 0)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::Simple(Cost::Fixed( + Money::new_subunit(7.0).add_vat(Country::SE), + ))) .transfer_fee(TransferFee::fixed_subunit(5.00)) .power_tariff(PowerTariff::new( TariffCalculationMethod::AverageHours(3), diff --git a/src/registry/sweden/sturefors_eldistribution_ab.rs b/src/registry/sweden/sturefors_eldistribution_ab.rs index d3ecd051..b699c3a1 100644 --- a/src/registry/sweden/sturefors_eldistribution_ab.rs +++ b/src/registry/sweden/sturefors_eldistribution_ab.rs @@ -7,7 +7,12 @@ pub static STUREFORS_ELDISTRIBUTION_AB: GridOperator = GridOperator::builder() .vat_number("SE556528175401") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 400)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://www.stureforsgods.se/elnatinfo") + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 9, 1) .monthly_fee(Cost::fuses(&[ @@ -25,7 +30,9 @@ pub static STUREFORS_ELDISTRIBUTION_AB: GridOperator = GridOperator::builder() (400, Money::new(117364, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::Simple(Cost::Fixed( + Money::new_subunit(3.5).add_vat(Country::SE), + ))) .transfer_fee(TransferFee::fixed_subunit(28.35 * 1.25)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/tidaholms_elnat_ab.rs b/src/registry/sweden/tidaholms_elnat_ab.rs index b10627f9..ca8c3248 100644 --- a/src/registry/sweden/tidaholms_elnat_ab.rs +++ b/src/registry/sweden/tidaholms_elnat_ab.rs @@ -7,7 +7,12 @@ pub static TIDAHOLMS_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556004333201") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 200)) - .links(Links::builder().fee_info(FEE_LINK, "#content").build()) + .links( + Links::builder() + .fee_info(FEE_LINK, "#content") + .feed_in_revenue_info_default("https://tidaholmsenergi.se/elnat/natpriser/") + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -24,7 +29,7 @@ pub static TIDAHOLMS_ELNAT_AB: GridOperator = GridOperator::builder() (200, Money::new(37075, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(5.0)) .transfer_fee(TransferFee::fixed_subunit(30.0)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/tranas_energi_elnat_ab.rs b/src/registry/sweden/tranas_energi_elnat_ab.rs index e6b20a37..51485c40 100644 --- a/src/registry/sweden/tranas_energi_elnat_ab.rs +++ b/src/registry/sweden/tranas_energi_elnat_ab.rs @@ -7,7 +7,14 @@ pub static TRANAS_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556952020701") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 35)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default( + "https://tranasenergi.se/privat/elnat/priser-och-villkor/", + ) + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -17,7 +24,7 @@ pub static TRANAS_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() (35, Money::new(9363, 75).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(4.5)) .transfer_fee(TransferFee::fixed_subunit(33.6)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/uddevalla_energi_elnat_ab.rs b/src/registry/sweden/uddevalla_energi_elnat_ab.rs index b3480f2d..b04385c8 100644 --- a/src/registry/sweden/uddevalla_energi_elnat_ab.rs +++ b/src/registry/sweden/uddevalla_energi_elnat_ab.rs @@ -11,6 +11,9 @@ pub static UDDEVALLA_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() "https://www.uddevallaenergi.se/privat/elnat.html", "div:has(> #Priserochavtal) + div", ) + .feed_in_revenue_info_default( + "https://www.uddevallaenergi.se/kundservice/fragor-och-svar.html#solenergi", + ) .build(), ) .price_lists(&[PriceList::builder() @@ -24,7 +27,7 @@ pub static UDDEVALLA_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() (63, Money::new(21250, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(5.0)) .transfer_fee(TransferFee::fixed_subunit(15.0)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/ulricehamn_energi_elnat_ab.rs b/src/registry/sweden/ulricehamn_energi_elnat_ab.rs index 6a4b736a..4d056a03 100644 --- a/src/registry/sweden/ulricehamn_energi_elnat_ab.rs +++ b/src/registry/sweden/ulricehamn_energi_elnat_ab.rs @@ -7,7 +7,12 @@ pub static ULRICEHAMN_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE559425365901") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 200)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://ueab.se/elnat/priser/") + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ diff --git a/src/registry/sweden/umea_energi_elnat_ab.rs b/src/registry/sweden/umea_energi_elnat_ab.rs index c49d1741..12b88668 100644 --- a/src/registry/sweden/umea_energi_elnat_ab.rs +++ b/src/registry/sweden/umea_energi_elnat_ab.rs @@ -11,6 +11,7 @@ pub static UMEA_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() "https://www.umeaenergi.se/elnat/priser/priser-elnat", "main", ) + .feed_in_revenue_info_default("https://www.umeaenergi.se/solenergi/mikroproduktion") .build(), ) .price_lists(&[PriceList::builder() @@ -29,7 +30,7 @@ pub static UMEA_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() (200, Money::new(49509, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(3.0)) .transfer_fee(TransferFee::fixed_subunit(21.0)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/varberg_energi_elnat_ab.rs b/src/registry/sweden/varberg_energi_elnat_ab.rs index ea7c9fd1..d1dc48e5 100644 --- a/src/registry/sweden/varberg_energi_elnat_ab.rs +++ b/src/registry/sweden/varberg_energi_elnat_ab.rs @@ -11,6 +11,9 @@ pub static VARBERG_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() .links( Links::builder() .fee_info(FEE_INFO, ".accordion-list > :nth-child(-n + 2)") + .feed_in_revenue_info_default( + "https://www.varbergenergi.se/privat/elnat/anslut-elproduktion-till-elnatet", + ) .build(), ) .price_lists(&[PriceList::builder() @@ -29,7 +32,7 @@ pub static VARBERG_ENERGI_ELNAT_AB: GridOperator = GridOperator::builder() (200, Money::new(69615, 00).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(2.0)) .transfer_fee(TransferFee::fixed_subunit(9.5)) .power_tariff(PowerTariff::new( TariffCalculationMethod::AverageHours(3), diff --git a/src/registry/sweden/varbergsortens_elnat_ab.rs b/src/registry/sweden/varbergsortens_elnat_ab.rs index 45a1a3fd..57cf0a19 100644 --- a/src/registry/sweden/varbergsortens_elnat_ab.rs +++ b/src/registry/sweden/varbergsortens_elnat_ab.rs @@ -7,7 +7,14 @@ pub static VARBERGSORTENS_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE559481776801") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(20, 63)) - .links(Links::builder().fee_info(FEE_LINK, "#content").build()) + .links( + Links::builder() + .fee_info(FEE_LINK, "#content") + .feed_in_revenue_info_default( + "https://vbgelkraft.se/energilosningar/egen-produktion-fragor-och-svar/", + ) + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 4, 1) .monthly_fee(Cost::fuses(&[ @@ -18,7 +25,9 @@ pub static VARBERGSORTENS_ELNAT_AB: GridOperator = GridOperator::builder() (63, Money::new(20625, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::Simple(Cost::Fixed( + Money::new_subunit(3.90).add_vat(Country::SE), + ))) .transfer_fee(TransferFee::fixed_subunit(20.0)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/varnamo_elnat_ab.rs b/src/registry/sweden/varnamo_elnat_ab.rs index 1676aab3..13ba1723 100644 --- a/src/registry/sweden/varnamo_elnat_ab.rs +++ b/src/registry/sweden/varnamo_elnat_ab.rs @@ -7,7 +7,12 @@ pub static VARNAMO_ELNAT_AB: GridOperator = GridOperator::builder() .vat_number("SE556528056601") .country(Country::SE) .main_fuses(MainFuseSizes::new_range(16, 35)) - .links(Links::builder().fee_info_default(FEE_LINK).build()) + .links( + Links::builder() + .fee_info_default(FEE_LINK) + .feed_in_revenue_info_default("https://www.varnamoenergi.se/natnyttoersattning") + .build(), + ) .price_lists(&[PriceList::builder() .from_date(2025, 1, 1) .monthly_fee(Cost::fuses(&[ @@ -17,7 +22,7 @@ pub static VARNAMO_ELNAT_AB: GridOperator = GridOperator::builder() (35, Money::new(8262, 50).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(10.0)) .transfer_fee(TransferFee::fixed_subunit(34.20)) .power_tariff(PowerTariff::NotImplemented) .build()]) From 72608aa40218a1f18317a997708796b38031cc3c Mon Sep 17 00:00:00 2001 From: Frida Eriksson Date: Thu, 30 Oct 2025 15:16:06 +0100 Subject: [PATCH 7/7] feed in revenue --- src/registry/sweden/gotlands_elnat_ab.rs | 2 +- src/registry/sweden/habo_energi_kraft_ab.rs | 14 +++++++++++++- .../sweden/halmstads_energi_och_miljo_nat_ab.rs | 3 ++- src/registry/sweden/harjeans_nat_ab.rs | 3 ++- src/registry/sweden/harryda_energi_ab.rs | 3 ++- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/registry/sweden/gotlands_elnat_ab.rs b/src/registry/sweden/gotlands_elnat_ab.rs index 1827d6fb..8c089a8e 100644 --- a/src/registry/sweden/gotlands_elnat_ab.rs +++ b/src/registry/sweden/gotlands_elnat_ab.rs @@ -15,7 +15,7 @@ const BASE_PRICELIST: PriceListBuilder = PriceListBuilder::new() (200, Money::new(100930, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(5.6)) .power_tariff(PowerTariff::NotImplemented); pub static GOTLANDS_ELNAT_AB: GridOperator = GridOperator::builder() diff --git a/src/registry/sweden/habo_energi_kraft_ab.rs b/src/registry/sweden/habo_energi_kraft_ab.rs index e50ea9e1..e72689a0 100644 --- a/src/registry/sweden/habo_energi_kraft_ab.rs +++ b/src/registry/sweden/habo_energi_kraft_ab.rs @@ -29,7 +29,19 @@ pub static HABO_ENERGI_KRAFT_AB: GridOperator = GridOperator::builder() (200, Money::new(77463, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::new_periods(CostPeriods::new(&[ + CostPeriod::builder() + .load(High) + .cost(Cost::fixed_subunit(6.88)) + .months(November, March) + .exclude_weekends() + .hours(06, 21) + .build(), + CostPeriod::builder() + .load(Low) + .cost(Cost::fixed_subunit(6.25)) + .build(), + ]))) .transfer_fee(TransferFee::fixed_subunit(22.89)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/halmstads_energi_och_miljo_nat_ab.rs b/src/registry/sweden/halmstads_energi_och_miljo_nat_ab.rs index 6ba848de..4c7fa1bb 100644 --- a/src/registry/sweden/halmstads_energi_och_miljo_nat_ab.rs +++ b/src/registry/sweden/halmstads_energi_och_miljo_nat_ab.rs @@ -11,6 +11,7 @@ pub static HALMSTADS_ENERGI_OCH_MILJO_NAT_AB: GridOperator = GridOperator::build "https://www.hem.se/elnat/avtal-och-priser", "#sektion-Sektion", ) + .feed_in_revenue_info_default("https://www.hem.se/elnat/avtal-och-priser") .build(), ) .price_lists(&[PriceList::builder() @@ -24,7 +25,7 @@ pub static HALMSTADS_ENERGI_OCH_MILJO_NAT_AB: GridOperator = GridOperator::build (63, Money::new(22767, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(6.25)) .transfer_fee(TransferFee::fixed_subunit(9.0)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/harjeans_nat_ab.rs b/src/registry/sweden/harjeans_nat_ab.rs index 24400479..896bc876 100644 --- a/src/registry/sweden/harjeans_nat_ab.rs +++ b/src/registry/sweden/harjeans_nat_ab.rs @@ -11,6 +11,7 @@ pub static HARJEANS_NAT_AB: GridOperator = GridOperator::builder() "https://www.harjeans.se/elnat/elnatspriser-2025/", ".sectionWrapper", ) + .feed_in_revenue_info_default("https://www.harjeans.se/elnat/anslut-din-solel/") .build(), ) .price_lists(&[PriceList::builder() @@ -29,7 +30,7 @@ pub static HARJEANS_NAT_AB: GridOperator = GridOperator::builder() (200, Money::new(114281, 0).divide_by(12)), ])) .monthly_production_fee(Cost::Unverified) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(5.13)) .transfer_fee(TransferFee::fixed_subunit(6.25)) .power_tariff(PowerTariff::NotImplemented) .build()]) diff --git a/src/registry/sweden/harryda_energi_ab.rs b/src/registry/sweden/harryda_energi_ab.rs index 1a457c6f..ef20abe9 100644 --- a/src/registry/sweden/harryda_energi_ab.rs +++ b/src/registry/sweden/harryda_energi_ab.rs @@ -8,6 +8,7 @@ pub static HARRYDA_ENERGI_AB: GridOperator = GridOperator::builder() .links( Links::builder() .fee_info("https://harrydaenergi.se/elnat/elnatspriser/", "#content") + .feed_in_revenue_info_default("https://harrydaenergi.se/om-oss/klimat-miljo/solenergi/") .build(), ) .price_lists(&[PriceList::builder() @@ -26,7 +27,7 @@ pub static HARRYDA_ENERGI_AB: GridOperator = GridOperator::builder() (160, Money::new(44070, 0).divide_by(12)), (200, Money::new(54790, 0).divide_by(12)), ])) - .feed_in_revenue(FeedInRevenue::Unverified) + .feed_in_revenue(FeedInRevenue::fixed_subunit(4.0)) .transfer_fee(TransferFee::fixed_subunit(23.9)) .power_tariff(PowerTariff::NotImplemented) .build()])