Package: pvpcbill
pvpcbillElectrical billing simulation for small consumers in Spain using PVPC(electricity hourly prices).It usesaiopvpcto download PVPC data, andthe usual suspects(pandas&matplotlib) to deal with time-series data and plotting.InstallInstall from pypi withpip install pvpcbill, or clone it to run tests or anything else ;-)UsageFrom ajupyter notebook, just call thecreate_billasync helper to instantiate a new 'bill' object:frompvpcbillimportcreate_bill# Creación directa de facturafactura=awaitcreate_bill(path_csv_consumo="/path/to/elec_data/consumo_facturado18_02_2020-18_03_2020-R.csv",potencia_contratada=4.6,# kWtipo_peaje="NOC",# GEN / NOC / VHCzona_impuestos="IVA",# IVA / IGIC / IPSI)print(factura)** If using it from a non-async script,
useasyncio.run(create_bill(**params))to run the async method.Output:FACTURA ELÉCTRICA:
--------------------------------------------------------------------------------
* CUPS             	        ES0012345678901234SN
* Fecha inicio             	17/02/2020
* Fecha final              	18/03/2020
* Peaje de acceso          	2.0DHA (Nocturna)
* Potencia contratada      	4.60 kW
* Consumo periodo          	472.93 kWh
* ¿Bono Social?            	No
* Equipo de medida         	0.80 €
* Impuestos                	Península y Baleares (IVA)
* Días facturables         	30
--------------------------------------------------------------------------------

- CÁLCULO DEL TÉRMINO FIJO POR POTENCIA CONTRATADA:
  Peaje acceso potencia:
   4.60 kW x 0.103944 €/kW/día x 30 días (366/2020) = 14.34 €
  Comercialización:
   4.60 kW x 0.008505 €/kW/día x 30 días (366/2020) = 1.17 €
  ==> Término fijo                                                     15.51 €

- CÁLCULO DEL TÉRMINO VARIABLE POR ENERGÍA CONSUMIDA (TARIFA 2.0DHA):
    Periodo 1: 0.111867 €/kWh                             ---> 19.02€(P1)
    - Peaje de acceso:     170 kWh * 0.062012 €/kWh = 10.54€
    - Coste de la energía: 170 kWh * 0.049855 €/kWh = 8.48€
    Periodo 2: 0.045617 €/kWh                             ---> 13.82€(P2)
    - Peaje de acceso:     303 kWh * 0.002215 €/kWh = 0.67€
    - Coste de la energía: 303 kWh * 0.043402 €/kWh = 13.15€
  ==> Término de consumo                                               32.84 €

- IMPUESTO ELÉCTRICO:
    5.11269632% x (15.51€ + 32.84€ = 48.35€)                           2.47 €
  ==> Subtotal                                                         50.82 €

- EQUIPO DE MEDIDA:
    30 días x 0.026667 €/día                                           0.80 €
  ==> Importe total                                                    51.62 €

- IVA O EQUIVALENTE:
    21% de 51.62€                                                      10.84 €

################################################################################
# TOTAL FACTURA                                                        62.46 €
################################################################################
Consumo medio diario en el periodo facturado: 2.08 €/díaBut there is much more:# Reparto de costes en la facturap_imp=(+factura.data.termino_impuesto_electrico+factura.data.termino_equipo_medida+factura.data.termino_iva_total)/factura.data.totalp_ener=factura.data.termino_variable_total/factura.data.totalp_pot=factura.data.termino_fijo_total/factura.data.totalprint(f"El coste de la factura se reparte en:\n"f"* un{100*p_ener:.1f}% por energía consumida,\n"f"* un{100*p_pot:.1f}% por potencia contratada,\n"f"* un{100*p_imp:.1f}% por impuestos aplicados\n\n")print(factura.data.to_json())Output:El coste de la factura se reparte en:
  * un 52.6 % por energía consumida,
  * un 24.8 % por potencia contratada,
  * un 22.6 % por impuestos aplicados{"config":{"tipo_peaje":"NOC","potencia_contratada":4.6,"con_bono_social":false,"zona_impuestos":"IVA","alquiler_anual":9.72,"impuesto_electrico":0.0511269632,"cups":"ES0012345678901234SN"},"num_dias_factura":30,"start":"2020-02-17 00:00:00","end":"2020-03-18 00:00:00","periodos_fact":[{"billed_days":30,"year":2020,"termino_fijo_peaje_acceso":14.34,"termino_fijo_comercializacion":1.17,"termino_fijo_total":15.51,"energy_periods":[{"name":"P1","coste_peaje_acceso_tea":10.544458468,"coste_energia_tcu":8.477372039999999,"energia_total":170.03900000000002},{"name":"P2","coste_peaje_acceso_tea":0.67090578,"coste_energia_tcu":13.146024950000003,"energia_total":302.892}]}],"descuento_bono_social":0.0,"termino_impuesto_electrico":2.47,"termino_equipo_medida":0.8,"termino_iva_gen":10.6722,"termino_iva_medida":0.168,"termino_iva_total":10.84,"total":62.46}ExamplesQuick example to simulate a bill (jupyter notebook)Detailed example to simulate a bill (jupyter notebook)