Pedidos de registros
Objetivo: um documento nomeado em mãos, barato, sem irritar um órgão do qual você queira mais tarde. Pronto = o arquivo está no disco, em cache, com sua proveniência e sua posição de direitos registrada — ou um "não temos isso" por escrito, que fecha o arquivo e também é uma vitória.
O portão: um humano envia. Redija, verifique o destinatário, coloque em um arquivo, diga que é um rascunho, pare. Um portal com CAPTCHA e caixa de seleção de assinatura só pode ser o humano.
Etapa 0 — leia o site primeiro. A regra mais barata aqui.
Antes de redigir qualquer coisa, procure o documento no próprio site do órgão.
Uma tabela de taxas publicada é evidência de que o órgão é consultado, não evidência de que a resposta custa dinheiro. Um condado foi relatado como vendendo seu estudo de taxa de capitalização por US$ 34,50 por ano e publicou quatro anos da mesma coisa gratuitamente em sua página de estatísticas. Uma busca na página economizou o dinheiro e três semanas de espera.
Depois, verifique os vizinhos: uma agência estadual pode publicar um agregado que o condado não publica (mas leia o que ele realmente cobre — um "estudo de taxa de capitalização" estadual pode cobrir apenas propriedades de utilidade pública e ferrovias avaliadas pelo estado). E confirme o negativo adequadamente: pesquise os relatórios publicados do órgão por seus termos. Esse negativo é o que torna o pedido a única rota de entrada.
Etapa 1 — encontre o órgão e acerte o nome dele
O órgão não se chama igual em dois estados. Escrever para o órgão errado não rende nada. Para avaliação de propriedade comercial, por exemplo:
| estado | quem avalia propriedade comercial |
|---|---|
| MN, IA, NE | Avaliador do Condado |
| KS | Avaliador do Condado |
| ND | Diretor de Equalização Tributária do Condado |
| SD | Diretor de Equalização do Condado |
| WI | não há avaliadores de condado — a avaliação é municipal, então escreva para a cidade |
Também: alguns estados incluem a cidade grande no avaliador do condado (Iowa: Polk cobre Des Moines); outros não (ND: Fargo e Cass são separados).
Prioridade de rota: e-mail, portal, correio.
- E-mail sempre que existir um endereço. Verifique-o na própria página do órgão.
- Portal (GovQA, NextRequest) apenas quando nenhum endereço for publicado. Portais precisam de um humano para a conta, o CAPTCHA e a caixa de seleção de assinatura vinculativa.
- Correio por último; anote no cabeçalho do rascunho como alternativa.
Algumas páginas são renderizadas por script e curl não retorna nada útil. Remova tags em Python e procure por @; se não houver endereço genuinamente, diga isso em vez de adivinhar um.
Etapa 2 — o parágrafo de exceção é todo o pedido
Nomeie a própria lei de confidencialidade e a negue, na carta. Sem esse parágrafo, o pedido é recusado por completo, porque a disposição de confidencialidade é o que o órgão busca por reflexo. Com ele, a pergunta deixa de ser "podemos liberar isso" e se torna "qual de nossas próprias tabelas você quis dizer".
Peça apenas as tabelas e estudos derivados, em todo o condado, do próprio órgão, sem dados em nível de parcela ou identificáveis do proprietário, e ofereça-se para receber um documento misto com as partes enviadas pelo proprietário redigidas.
Disposições usadas com sucesso para pedidos de avaliador (verifique a lei atual):
| estado | solicitação sob | negue |
|---|---|---|
| MN | Minn. Stat. 13.03 subd. 3 | 13.51 subd. 2 — receita/despesa enviada pelo proprietário, fatores de vacância, áreas alugáveis, arrendamentos |
| KS | K.S.A. 45-215 et seq. (custodiante: 45-218) | 45-221(b) — informações financeiras do contribuinte fornecidas ao avaliador |
| IA | Iowa Code ch. 22 | 22.7 segredo comercial — e cite 441.21(3)(a), que exige afirmativamente a divulgação da fórmula ou método, além de 441.19(1)(a) |
| NE | Neb. Rev. Stat. 84-712 | 84-712.05(3) segredo comercial / proprietário |
| ND | N.D.C.C. 44-04-18 | 44-04-18.4 segredo comercial / comercial |
| SD | SDCL 1-27-1 | o equivalente de confidencialidade do avaliador daquele estado |
Onde uma lei obriga a divulgação, cite-a (Iowa acima): ela anula completamente o reflexo de confidencialidade.
Não reformule um texto que já foi aceito. Depois que um órgão aceitar sua redação, reutilize-a literalmente para seus pares, trocando apenas o nome; uma versão reformulada convida uma segunda rodada de perguntas de escopo. Verifique se o parágrafo sobreviveu a qualquer edição em massa gerando um hash dele em relação ao original aceito.
Etapa 3 — três coisas para colocar na primeira carta, sempre
- Peça cinco anos, não um. "Anos de avaliação 2022 a 2026 inclusive." A mesma pesquisa para o órgão, cinco vezes os dados — e a série geralmente é o produto (mostra como o órgão moveu suas próprias taxas). Adicione: "Envie quaisquer anos que você tenha; uma resposta parcial é uma resposta útil", para que um ano ausente não emperre a resposta.
- Dê a eles uma saída barata. "Se o Órgão não mantiver tabelas desse tipo, uma resposta de uma linha dizendo isso encerra este assunto e não vou acompanhar." Um não por escrito é um arquivo fechado e custa trinta segundos em vez de uma carta de recusa.
- Peça a estimativa de taxa primeiro. "Se o preenchimento disso incorrer em uma taxa, informe-me a estimativa primeiro e eu reduzirei o pedido." Alguns órgãos cobram por hora para localizar e por hora para redigir — dois medidores ao mesmo tempo.
Etapa 4 — antes de um envio em lote
- Verifique MX de cada domínio de destinatário:
dig +short MX <dominio>. Pega um erro de digitação antes de dezenove rejeições. - Leia um corpo completo do início ao fim. Não o diff, a carta.
- Mantenha a identidade do solicitante consistente em uma campanha (mesma pessoa ou mesma empresa, mesmo endereço) para que as respostas se agrupem e ninguém pergunte novamente quem você é.
- Envie como texto simples. Cartas com quebra de linha rígida colapsam em HTML.
Etapa 4b — um formulário web é um canal hostil. Prepare-se para duas armadilhas.
-
Um limite de caracteres do qual você não é informado. Um campo de mensagem pode truncar silenciosamente um corpo de 2.000 caracteres em 1.000. Para qualquer formulário, escreva uma variante curta antecipadamente: citação da lei, o pedido com seu intervalo de anos, a isenção de confidencialidade, a linha de estimativa de taxa, contato. A isenção é a última coisa a cortar.
-
Um Firewall de Aplicação Web que rejeita a carga útil completamente (
Tipo de Evento: assinatura). A causa é pontuação, não comprimento: um apóstrofo simples é a assinatura padrão de injeção SQL. Limpe o corpo e o assunto de'"()&/;=<>--e não-ASCII. Escreva "e" para "&", omita subseções de leis em vez de colocá-las entre parênteses, diga "seu Órgão derivou" em vez de "do Órgão". Audite em código:python3 -c "s=open('body.txt').read(); print({c:s.count(c) for c in \"'\\\"()&/;=<>\" if c in s})"
Conheça a alternativa antes de começar: órgãos que escondem um e-mail ainda publicam um endereço físico. Um formulário que luta contra você por três rodadas não vale uma quarta; envie pelo correio.
Etapa 5 — registre o envio, ou ele nunca aconteceu
Mantenha a linha de assunto legal — um oficial de registros roteia por ela, e as respostas se agrupam sob ela. Altere o cabeçalho de cada rascunho de NÃO ENVIADO para ENVIADO <data> de <endereço>, messageId <id>, mantenha o corpo literal abaixo como registro e atualize seu rastreador. Releia cada linha que uma edição em massa tocou: uma localização e substituição global em uma coluna de status marcará felizmente linhas de formulário web não enviadas como ENVIADAS.
Etapa 5b — respostas que precisam de um anexo
Alguns MCPs de e-mail (o do Zoho, por exemplo) não têm upload de anexo. Envie essa resposta por meio de um provedor transacional (por exemplo, Mailgun) do mesmo endereço, encadeada na mensagem do órgão com h:In-Reply-To e h:References definidos para o Message-ID deles, mantendo o assunto deles. Com curl, use --form-string para cada cabeçalho e campo do corpo — -F trata um valor que começa com < (todo Message-ID) ou @ como "leia este arquivo". Confirme a entrega pela API de eventos do provedor.
O próprio formulário de um órgão geralmente está em seu site. Se for um PDF simples, sobreponha texto com reportlab, coloque especificações longas em uma página 2 e renderize a página para PNG e observe-a antes de enviar (o texto cai sobre etiquetas com mais frequência do que você imagina).
Reduza quando devolver um formulário. Um aviso de taxa é o momento para dizer o que você já possui e pedir apenas o restante, estimativa primeiro.
Um não suave que nomeia as entradas não é um não nas tabelas derivadas. "Usamos dados de pesquisas de aluguel, que são confidenciais" responde a um item apontando para entradas confidenciais e pula o estudo derivado. Refaça os itens ignorados como sim/não, agradeça e ofereça a saída de uma linha novamente. Seja cortês: você também quer a próxima resposta deste órgão.
Etapa 6 — persiga, porque geralmente não há prazo
O prazo curto geralmente não é seu. Os "10 dias úteis" de um portal podem se aplicar apenas a um titular dos dados perguntando sobre si mesmo. Um pedido geral de dados governamentais geralmente recebe "um tempo razoável" (por exemplo, Minn. Stat. 13.03 subd. 3), que não define prazo algum. O acompanhamento é a única pressão. Agende uma perseguição cerca de duas semanas depois do dia do envio (veja o gancho pending-queue), com o número de referência, caminho do portal, contato nomeado e "não reformule o pedido" nela. Uma perseguição é uma verificação de status; nunca reescopo em um acompanhamento.
Etapa 7 — o que veio pode ser republicado?
Responda a isso antes de construir qualquer coisa com base nisso.
- Minnesota: sim, inclusive comercialmente. Uma agência deve permitir "uso irrestrito desses dados, mesmo para fins comerciais, salvo autorização estatutária específica em contrário" — Parecer do Procurador-Geral de MN 852 (1995).
- Em todo lugar: fatos não têm direitos autorais (Feist) — apenas uma seleção ou arranjo particular pode ter. Republicue os números, nunca o layout do documento deles. Reexpresse em seu próprio esquema.
- Em outros lugares, a parte de uso é incerta. Leia a cláusula de uso comercial daquele estado antes de reivindicá-la e marque seus próprios arquivos honestamente ("ainda não liberado para republicação" é seu marcador, não a restrição do órgão — não o cite como tal).
Etapa 8 — analisando o que chega
Armazene em cache o original junto com a saída analisada com um sha256 e a URL canônica, e nunca baixe novamente.
Rótulos variam entre anos. Os rótulos de linha de um condado foram 22, 22, 18, 18 em quatro planilhas anuais, com tipos de propriedade desaparecendo. Escreva manualmente a correspondência e mantenha o rótulo bruto literal em cada registro. Nunca use correspondência fuzzy — é assim que um número errado é enviado parecendo certo. Um tipo que desaparece está ausente, não é zero.
Não confie em uma regex sobre a saída de pdftotext para lhe dizer a estrutura. Uma classe de caractere faltando dígitos truncou Armazém <25% Escritório / >20K no 2 e mesclou silenciosamente quatro linhas em duas. Verifique a contagem de linhas em relação à fonte antes de acreditar em sua extração.
Comprove uma junção entre fontes na fonte nº 2 antes de vender amplitude. Dois condados no mesmo estado, mesmo tipo de documento, podem compartilhar zero nomes exatos de tipo de propriedade.