Scraping SEC 10-K & 20-F filings for subsidiaries

I made a post (written in Italian) on my attempt to learn how to find all US SEC regulated companies and all of their subsidiaries along with the country where those are located.

After having learned the key concept, i’m now writing this post trying to summarize my technology scounting and see if i come up to an already existing resources, or there’s some need to further dig into this kind of problem.

A brief review of existing software packages:

Python SECEdgar download SEC filing files (only 10-K, no 20-F of foreign ADR companies)

Scraping SEC Filings download SEC filings

Getting structured SEC EDGAR data OKFN discussion forum

CorpWatch API seems to do exactly what we need but it’s maybe unupdated, need to drop them an email

Although the SEC provides a search interface for locating company filings (EDGAR / IDEA), the subsidiary information is not presented in a standardized format suitable for automated use or insertion into a database. The CorpWatch API uses parsers to “scrape” the subsidiary relationship information from Exhibit 21 of the 10-K filings and provides a well-structured interface for programs to query and process the subsidiary data.

Influence Mapping based on Corpwatch API (but most recente update 2015)

CrocTail uses the CorpWatch API to “scrape” data from the US Securities and Exchange Commission’s database and processes it to create a well-structured interface for programs to query and process company and subsidiary data

 

So it seems that the CorpoWatch API seems to be the best (and only) APIs actually available, but it seems that support 10-K filings (for US based company) but not 20-F filing (for ADR foreign companies, quoted in US market), even trough the 20-F filing as almost the same.

Regulating Law Enforcement uses of Trojans

Title:

Regulating Law Enforcement uses of Trojans

Subtitle:

Implementing a Law to juridically, operationally and technically regulate the uses of Trojan in Italy

Abstract

The complexity of implementing a policy (law) and related operational and technical procedures to regulate the uses of Trojan by Law Enforcement in a way that protect civil rights while not preventing investigations from going on with the right balance of juridical/technical implementation.

Description:

This talk will explain which are the juridical and related technical and operation problems in the uses of Trojan by law enforcement (note: only LEA, we are not speaking of intelligence/NSA/GCHQ/etc).

We’ve setup in Italy a team of a technologist MP, a IT-skilled Lawyers and an Hacker/Privacy Activists, to goes trough the difficult trip to achieve the implementation of a Legislation that works either on paper, either technically that can have a shared consensus among usually opposing parties such as civil rights organization and security apparatus (law enforcement & prosecutors).

We’ll explain the bit of history and experience in setting up such a law (how to do it in your own country!), which are the logical framework, the juridical framework, the operational framework and the technical choices to do it.

We hope that this experience represent a milestone in regulating something (the Trojan) that are here to stay, given the increase of default IP encryption with the corresponding decrease in investigative power trough passive IP surveillance system.

All of this in the context of privacy activism where part of the community fully reject any instance of accepting government hacking instances and in turn criticize this effort.

Società quotate negli US e loro subsidiaries

L’esigenza è semplice, anzi no, è complessa:

Voglio avere l’elenco di tutte le società quotate nei mercati regolamentati dalla SEC degli stati uniti d’america e delle loro subsidiaries in tutto il mondo.

Per fare questo ci sono un po’ di cose da imparare e risorse da studiare e questo articolo raccoglie le note di studio per raggiungere il risultato.

Ottenere l’elenco delle società regolamentate

Avere l’elenco delle società regolamentate è semplice, basta andare sulla pagina “Company List” dove sono tutte le società quotate su NASDAQ, NYSE e AMEX.

Per le ADR, cioè le società estere quotate su mercati US bisogna fare export selettivi:

Ottenere l’elenco delle subsidiaries

Per ottenere l’elenco delle società controllate e partecipate da quelle quotate è necessario andare a guardare dentro ai SEC filings.

I SEC filings sono le dichiarazioni obbligatorie che su base trimestrale o annuale o su specifici eventi le società regolamentate devono effettuare.

Ce ne sono tante, per districarsi è utile la “Guide to SEC filings” della Thomson Research.

Per le società con base negli stati uniti il filing 10-K, cioè la dichiarazione finanziaria annuale, è quello da approfondire. Molto utile la guida SEC su come leggere i 10-K .

Le società regolamentate nel filing 10-K si possono trovare nella:

  • Part I -> Item 1 -> Business

requires a description of the company’s business, including its main products and services, what subsidiaries it owns, and what markets it operates in.

  • Part IV -> Item 15 -> Exhibits, Financial Statement Schedules

Many exhibits are required, including documents such as the company’s bylaws, copies of its material contracts, and a list of the company’s subsidiaries.

Sempre nei filing 10-K dovrebbe esserci un allegato specifico per le Subsidiaries:

  • Exhibit 21: Subsidiaries

E le società estere quotate negli US?

Le società estere quotate negli stati uniti si chiamano ADR, American Depositary Receipt, e sono di 3 livelli, dove a noi interessano le “Sponsored Level II ADRs” (Listing) e le “Sponsored Level III ADRs” (Offering) perchè sono quelle quotate sui mercati regolamentati dalla SEC.

Ecco, le ADR non devono inviare i filing 10-K ma i filings 20-F (che sostanzialmente sono come i 10-K) e che “dovrebbero” avere quello che ci interessa in questa sezione

  • Item 10 (ADDITIONAL INFORMATION) -> I.   Subsidiary information 

Ad titolo di esempio 20-F di ArcelorMittal, della Italiana Luxottica e ENI (dove a pagina 119 ha l’elenco i tutte le società controllate).

Dalla EDGAR Guide troviamo circa le subsidiaries:

7. Where can I find a list of a company’s subsidiaries?

A list of subsidiaries must be disclosed to the SEC as Exhibit 21 to registration statements filed on Forms S-1, S-4, S-11, F-1, F-4, 10, and the annual report filed on Form 10-K.

E’ anche interessante (seppur off-topic) la possibilità di cercare tutte le aziende quotate su EDGAR per country-code .

Come cercare le subsidiaries tramite i SEC filings

E’ possibile cercare tutti i filings su EDGAR, l’archivio online completo della SEC.

Ad esempio si può cliccare qui per vedere tutti gli ultimi filing 20-F inviati nel 2017 dalle società non statunitensi quotate su mercati statunitensi.

Nei filings 20-F come nei 10-K ci sono le subsidiaries, tuttavia non sono scritte in un formato standard machine readable e questo è un grandissimo limite per l’obiettivo che mi sono posto.

A questo punto, a parte il suggerimento di comprare accesso basi dati a pagamento quali Compustat e Amadeus che forse hanno i dati delle subsidiaries già in modalità strutturata, rimane solo hacking sulla base dei moduli 10-K e 20-F pubblicati su EDGAR.

Viene da domandarsi se non sia possibile creare uno scraper con capacità semantiche a tale scopo?

Qualcuno ha qualche idea?

Whistleblowers della SEC: come funziona?

Stavo leggendo “A Resource Guide to the U.S. Foreign Corrupt Practices Act” che racconta le regole e legislazione legata alla compliance con la norma che impone di non corrompere publici ufficiali esteri a società quotate nei mercati statunitensi (quando operanti all’estero, direttamente o tramite società controllate).

Ad esempio l’italiana ENI SpA (e le sue società controllate), essendo quotata come ADR (American Depositary Receipt) sul NYSE, deve sottostante all’FCPA, e infatti è stata già condannata a pagare 365 milioni di dollari di multa per corruzione operata in Nigeria.

I whistleblowers che segnalano violazioni che portano a sanzioni superiori a 1 milione di dollari hanno diritto a un riconoscimento dal 10% al 30% della sanzione inflitta purchè:

Voluntarily provide the SEC …

  • In general, a whistleblower is deemed to have provided information voluntarily if the whistleblower has provided information before the government, a self-regulatory organization or the Public Company Accounting Oversight Board asks for it directly from the whistleblower or the whistleblower’s representative.

… with original information …

  • Original information must be based upon the whistleblower’s independent knowledge or independent analysis, not already known to the Commission and not derived exclusively from certain public sources.

… that leads to the successful enforcement by the SEC of a federal court or administrative action …

  • A whistleblower’s information can be deemed to have led to a successful enforcement action if:
    1. The information is sufficiently specific, credible and timely to cause the Commission to open a new examination or investigation, reopen a closed investigation, or open a new line inquiry in an existing examination or investigation.
    2. The conduct was already under investigation when the information was submitted, and the information significantly contributed to the success of the action.
    3. The whistleblower reports original information through his or her employer’s internal whistleblower, legal, or compliance procedures before or at the same time it is passed along to the Commission; the employer provides the whistleblower’s information (and any subsequently-discovered information) to the Commission; and the employer’s report satisfies prongs (1) or (2) above.

Ma sopratutto non hanno diritto al premio in nessuna delle seguenti condizioni:

  • People who have a pre-existing legal or contractual duty to report their information to the Commission.
  • Attorneys (including in-house counsel) who attempt to use information obtained from client engagements to make whistleblower claims for themselves (unless disclosure of the information is permitted under SEC rules or state bar rules).
  • People who obtain the information by means or in a manner that is determined by a U.S. court to violate federal or state criminal law.
  • Foreign government officials.
  • Officers, directors, trustees or partners of an entity who are informed by another person (such as by an employee) of allegations of misconduct, or who learn the information in connection with the entity’s processes for identifying, reporting and addressing possible violations of law (such as through the company hotline).
  • Compliance and internal audit personnel.
  • Public accountants working on SEC engagements, if the information relates to violations by the engagement client.

Under the final rules, the Commission also will not pay culpable whistleblowers awards that are based upon either:

  • The monetary sanctions that such culpable individuals themselves pay in the resulting SEC action.
  • The monetary sanctions paid by entities whose liability is based substantially on conduct that the whistleblower directed, planned or initiated.

 

 

 

Insomma, piuttosto interessanti le regole per un Whistleblower che fa reporting di corruzione all’estero (rispetto agli stati uniti) di società quotate sui mercati regolamentati dalla SEC (No, non gli OTC over-the-counter).

Quando il software in Riuso non è realmente OpenSource

Facendo seguito all’articolo sulla Barzelletta del software in Riuso per la PA ho deciso di fare un esperimento:

Ho provato a richiedere con una richiesta di accesso generalizzato i codici sorgenti di un software dichiarato OpenSource nel Catalogo in Riuso Agid

Il software di cui ho richiesto copia di accesso si chiama “IWS- Internal whistleblowing system” ed è il software di Whistleblowing sviluppato internamente dal Comune di Napoli.

E’ dichiarato con licenza “Open Source” come pubblicato nel catalogo in riuso di Agid:

Screen Shot 2017-06-01 at 16.45.31

Quindi il 09/05/2017 faccio Richiesta di accesso (FOIA) al Software di Whistleblowing:

“Tutti i codici sorgenti software e tutti i documenti di manualistica tecnica, di sviluppo, operativa e/o per l’utente finale e/o per l’amministratore oltre a tutti i materiali di formazione relativi al software “IWS- Internal whistleblowing system” del comune di Napoli di cui riferimenti in relazione al software pubblicato in riuso sul sito http://www.agid.gov.it/node/17883 .”

Quindi il 29/05/2017 il Comune di Napoli a voce dell’Ing. Luigi Volpe, Dirigente dell’Area Sviluppo Applicativi, Rifiuta la Richiesta di Accesso come segue:

Screen Shot 2017-06-02 at 08.44.03.png

Quindi decido di chiedere su Facebook ai vari amici avvocati e giuristi esperti di diritto cosa ne pensino e mi viene fatto notare da Marco Scialdone e Benedetto Ponti di una recente Sentenza del TAR, Lazio-Roma, sez. III bis, sentenza 22/03/2017 n° 3769 inerente il Diritto di Accesso all’Algoritmo

Segnalo anche la cosa con dei Facebook Tag ad amici dell’Agenzia per l’Italia Digitale per farglielo sapere, come scrivo questo post per raccontare la vicenda in modo analitico.

A questo punto oggi 02/06/2017 provo ad effettuare Richiesta di Riesame indirizzandola al Responsabile Anticorruzione Francesco Maida e al Responsabile Anticorruzione Gaetano Virtuoso (trovati dal feed OpenData ANAC) fornendo anche i riferimenti relativia alla sentenza del Tar.

E’ comunque utile fare notare come il Comune di Napoli non utilizzi per le segnalazioni anti-corruzione ricevute dall’esterno della propria rete aziendale il software IWS ma richieda ai cittadini la compilazione di un formulario in Excel o PDF .

Altrettanto interessante è l’avere ricevuto una visita sul mio profilo linkedin da parte di Palmina Iuliano, Funzionario Informatico del Comune di Napoli che si è occupata proprio di un pezzo del software IWS, quello relativo al modello crittografico:

– encryption process for whistleblower system inside anti-corruption plan

Aggiornamenti sulla risposta alla richiesta di riesame quanto prima.

Auspichiamo che il Comune di Napoli avrà l’eleganza di pubblicare i codici sorgenti, la documentazione annessa e connessa, i documenti di design aprendo un repository github, come fa Agid e il Team per la Trasformazione Digitale con Developers Italia.

Questi esperimenti spero saranno utili a validare quanto sia efficace il “riuso” anche quando dichiarato opensource (ma poi non pubblico e quindi non liberamente riusabile).

UPDATE 16/06/3017

Il Comune di Napoli Rifiuta la richiesta di riesame e di pubblicare i codici sorgenti “opensource” del software da loro sviluppato!!! 

Scarica qui l’incredibile rifiuto del Comune di Napoli a fornire codice di software dichiarato opensource!

 

 

La Barzelletta del Software in Riuso per la PA

Come non molti sanno, il software che viene sviluppato dalla pubblica amministrazione internamente o con contratti di sviluppo, è disponibile in riuso ad altre pubbliche amministrazioni.

Agid, l’agenzia per l’italia digitale, manutiene il Catalogo Nazionale Programmi Riusabili dove è possibile consultare le appena 2 paginette di software disponibili in riuso.

Chiunque lavora nel mondo IT dal “software in riuso” si aspetterebbe di trovare un elenco di software ben presentati, con documentazione, codici sorgenti disponibili in un repository che coadiuvi la collaborazione e lo sviluppo comunitario (come l’uso che viene fatto di Github dal Team per la Trasformazione Digitale), un forum dove gli utenti/utilizzatori di quel software possono discutere e affrontare problemi/opportunità nel suo uso e miglioramento.

Invece ci si ritrova di fronte a una vetrina composta da un elenco di nomi di software difficile da consultare e analizzare nei suoi parametri qualitativi, trovandosi a dovere aprire decine di file PDF scritti dagli enti che hanno messo in riuso il software dove sono descritte le funzionalità e indicati i contatti a cui scrivere per ottenerne una copia del software in riuso.

Non che la procedura per mettere in riuso un software che agid propone alle pubbliche amministrazioni sia particolarmente “user friendly” e “tech oriented” .

Ma poi da informatici, ci si domanderebbe, il software in riuso deve essere opensource?

NO!

La pubblica amministrazione può tranquillamente non essere titolare dei diritti di sfruttamento della proprietà intellettuale del software, che rimangono del privato che eventualmente li ha fatti con una commessa ad-hoc, ma che ha dovuto garantire la disponibilità di rilicenziarlo gratuitamente alla pubblica amministrazione.

Ma allora almeno, ci si domanderebbe, il software in riuso deve avere dei requisiti minimi di qualità e documentazione del codice?

NO!

Ok, ma almeno oltre alla manualistica di installazione e uso, il software in riuso deve essere fornito con  la documentazione, scripts e strumenti per “metterci le mani sopra” (ovvero farne modifiche software per adattarlo alle varie esigenze) ?

NO!

Ma allora….fatemi capire, addirittura una software house che sviluppasse un software per una pubblica amministrazione, la quale intende metterlo in riuso, potrebbe agire tecnicamente non fornendo documentazione di sviluppo, documentando scarsamente il codice, fornendo scripts e documentazione di installazione/testing carenti con il solo scopo di mettere in difficoltà qualunque tecnico che vi ci approcciasse de-facto obbligando una PA che volesse avvantaggiarsi del software in riuso a stipulare un contratto di consulenza ?

SI!

Date queste considerazioni ritengo che l’agenzia per l’italia digitale, facendosi aiutare dal team per la trasformazione digitale dovrebbe:

  1. Aggiornare le proprie linee guida sul software in riuso per obbligare licenze di tipo opensource (come indicato dal CAD al capo VI, Art 69, comma 1) nonchè la pubblicazione del codice su repository pubblici orientati alla collaborazione (es: Github o un Gitlab self-hosted proprio)
  2. Richiedere standard minimi di qualità e sicurezza del software, misurandone gli indicatori spazzolandosi il codice sorgente all’interno dei repository di software orientati al riuso
  3. Fornire una piattaforma web che consenta e faciliti sia l’inserimento di software in riuso che la consultazione, ricerca e comparazione dei software in riuso determinando la nascita di un vero e proprio marketplace del software in riuso

Ora torno a lavorare, oggi avevo la luna storta, scusatemi se sono stato un po’ acido

Ciao

-naif

Low Cost Open Conveyor & Sorter

[ITA] Nessuno si è occupato di ingegneria open per la creazione di sistemi di smistamento merce (rulliere e switch) a basso costo, in cui il processo di progettazione include come vincolo forte la semplicità costruttiva, di assemblamento e manunzione assieme a una fortissima riduzione di costo.

[EN] Up to now no one made an open engineering project for the development of low cost conveyors and sorter for small packages, with the process including strict rules on the simplicity of the manufacturing, assembly and maintenance of the system along with a -90% cost reduction compared to the actual solution on the commercial markets.

Open Conveyors and sorter should be something that a local company could build based on open project schematics.

I would like to focus on boxes that have a weigth between 100gr up to 5kg and i would like to build a system that could dispatch among 40 different bays the packages, but that have very simple and effective scalability.

The conveyors should have those components:

  1. A loader tunnel where boxes are put into
  2. A photo + barcode recognition tunnel that can detect barcode on all exposed faces (4-6 webcam with the right software)
  3. A unloading tunnel where the boxes goes after has been identified
  4. A set of unloading tunnels (40 for me, 20 for each side or 40 on one side) where boxes will be routed
  5. A set of “switches” that route the boxes to those unloading tunnels

It sould just do that, nothing more, nothing less, and it should be *simple* .

The tunnel could be belt conveyors or roller conveyors, i don’t mind, as long as it’s very simple and very cheap to be built, to be assembled (ideally self-assembly IKEA-like instruction) and to be self-maintened (just an instruction manual or videos, no maintenance contracts for assistance and spare parts).

Some interesting links being collected while doing this on-going analysis:

Below a collection of producer in Italy to which i’m asking for those requirements:

The entire engineering process and specification along with the assembly and maintenance be public knowledge.

The selection of the components to be used shall have at least 4 different providers of the very same kind of components, in order to provide freedom of choice.

That would be an ideal applied industrial research and development project for a university, i should look for the right professor at the right engineering department to have a conversation.

It could also be the right innovation project for a FabLab, triggering the makers creativity!

If you want to engage in such a project, do you think there are the right pointers or persons or projects we could starts from, get in touch with me! 🙂