diff --git a/client/src/components/APIDataTypes.ts b/client/src/components/APIDataTypes.ts index b2695b4bf..7feeb41f9 100644 --- a/client/src/components/APIDataTypes.ts +++ b/client/src/components/APIDataTypes.ts @@ -209,6 +209,7 @@ export type MonthlyTimelineData = { dobviolations_ecb: number; dobviolations_total: number; evictionfilings_total: number; + rentstabilizedunits_total: number; }; export type IndicatorsHistoryResults = { diff --git a/client/src/components/DetailView.tsx b/client/src/components/DetailView.tsx index d9375dd96..4a6f4f4cc 100644 --- a/client/src/components/DetailView.tsx +++ b/client/src/components/DetailView.tsx @@ -13,7 +13,7 @@ import { isPartOfGroupSale } from "./PortfolioTable"; import { Link, useLocation } from "react-router-dom"; import { LocaleLink } from "../i18n"; import BuildingStatsTable from "./BuildingStatsTable"; -import { createWhoOwnsWhatRoutePaths, AddressPageRoutes } from "../routes"; +import { createWhoOwnsWhatRoutePaths, AddressPageRoutes, removeIndicatorSuffix } from "../routes"; import { defaultLocale, SupportedLocale } from "../i18n-base"; import { withMachineInStateProps } from "state-machine"; import { Accordion } from "./Accordion"; @@ -285,7 +285,7 @@ class DetailViewWithoutI18n extends Component {
{ window.gtag("event", "view-data-over-time-overview-tab"); diff --git a/client/src/components/Indicators.tsx b/client/src/components/Indicators.tsx index 3f67a3304..d163c2cd5 100644 --- a/client/src/components/Indicators.tsx +++ b/client/src/components/Indicators.tsx @@ -25,6 +25,9 @@ import { import { NetworkErrorMessage } from "./NetworkErrorMessage"; import { Dropdown } from "./Dropdown"; import { AmplitudeEvent, logAmplitudeEvent } from "./Amplitude"; +import { withRouter } from "react-router-dom"; +import { RouteComponentProps } from "react-router"; +import { AddressPageUrlParams, removeIndicatorSuffix } from "routes"; type TimeSpanTranslationsMap = { [K in IndicatorsTimeSpan]: (i18n: I18n) => string; @@ -49,10 +52,26 @@ const getDropdownWidthFromLongestSelection = (selections: string[]) => { return Math.min(lengthOfLongestSelection * LETTER_WIDTH + MENU_BUFFER, MAX_WIDTH); }; -class IndicatorsWithoutI18n extends Component { - constructor(props: IndicatorsProps) { +type IndicatorsWithRouterProps = RouteComponentProps & IndicatorsProps; + +export const validateIndicatorParam = (indicatorParam?: string) => { + const indicator = indicatorParam as IndicatorsDatasetId; + if (indicatorsDatasetIds.includes(indicator)) { + return indicator; + } +}; + +class IndicatorsWithoutI18n extends Component { + constructor(props: IndicatorsWithRouterProps) { super(props); - this.state = indicatorsInitialState; + const indicator = + validateIndicatorParam(props.match.params.indicator) || indicatorsInitialState.defaultVis; + this.state = { + ...indicatorsInitialState, + activeVis: indicator, + defaultVis: indicator, + activeTimeSpan: indicator === "rentstabilizedunits" ? "year" : "quarter", + }; this.handleVisChange = this.handleVisChange.bind(this); } @@ -95,10 +114,20 @@ class IndicatorsWithoutI18n extends Component } } + setUrlIndicator(indicator: IndicatorsDatasetId) { + const timelinePath = removeIndicatorSuffix(this.props.addressPageRoutes.timeline); + this.props.history.replace(`${timelinePath}/${indicator}`); + } + handleVisChange(selectedVis: IndicatorsDatasetId) { + if (selectedVis === "rentstabilizedunits") { + this.handleTimeSpanChange("year"); + } + this.setState({ activeVis: selectedVis, }); + this.setUrlIndicator(selectedVis); } /** Changes viewing timespan to be by 'year', 'quarter', or 'month' */ @@ -133,6 +162,9 @@ class IndicatorsWithoutI18n extends Component this.updateData(); + if (this.props.isVisible && !this.props.location.pathname.includes(this.state.activeVis)) { + this.setUrlIndicator(this.state.activeVis); + } const newlyLoadedRawData = !prevProps.state.matches({ portfolioFound: { timeline: "success" } }) && state.matches({ portfolioFound: { timeline: "success" } }) && @@ -289,6 +321,7 @@ class IndicatorsWithoutI18n extends Component name={timespan} checked={this.state.activeTimeSpan === timespan ? true : false} onChange={() => this.handleTimeSpanChange(timespan)} + disabled={activeVis === "rentstabilizedunits" && timespan !== "year"} /> {timeSpanTranslations[timespan](i18n)} @@ -370,5 +403,5 @@ class IndicatorsWithoutI18n extends Component } } -const Indicators = withI18n()(IndicatorsWithoutI18n); +const Indicators = withRouter(withI18n()(IndicatorsWithoutI18n)); export default Indicators; diff --git a/client/src/components/IndicatorsDatasets.tsx b/client/src/components/IndicatorsDatasets.tsx index 68173bf1c..bf185d7a2 100644 --- a/client/src/components/IndicatorsDatasets.tsx +++ b/client/src/components/IndicatorsDatasets.tsx @@ -21,7 +21,8 @@ export interface IndicatorsDataset { | "hpdviolations" | "dobpermits" | "dobviolations" - | "evictionfilings"; + | "evictionfilings" + | "rentstabilizedunits"; /** * The localized name for a particular "quantity" of the dataset, e.g. @@ -238,6 +239,7 @@ export const INDICATORS_DATASETS: IndicatorsDatasetMap = { ) and not evictions carried out by NYC Marshals.
+
If you or someone you know is facing eviction and want to learn more about your rights, head over to{" "} .
+
Due to privacy restrictions on the use of these data, eviction filings cannot be shown for buildings with fewer than 11 units. ), }, + rentstabilizedunits: { + name: (i18n) => i18n._(t`Rent Stabilized Units`), + analyticsName: "rentstabilizedunits", + quantity: (i18n, value) => i18n._("Rent Stabilized Units registered since 2010"), + yAxisLabel: (i18n) => i18n._(t`Number of Units`), + explanation: () => ( + +
+ Rent stabilization + {" "} + protects tenants by limiting rent increases and providing the right to lease renewals. + Landlords register rent-stabilized units each year with NYS Homes and Community Renewal + (HCR). Though the agency does not directly make this data available, the number of + registered rent-stabilized units appears on public city property tax bills. JustFix and + open-source community projects have extracted these numbers to compile a{" "} + + dataset of building-level counts of rent-stabilized units + {" "} + from 2007 to 2022. +
+
A significant limitation of the data is that{" "} + + landlords will sometimes fail to register the units + {" "} + or do so late, and in the tax bills, it appears there are no rent-stabilized units. For this + reason, you may see a sudden drop of registered units to zero, but this doesn’t necessarily + reflect an actual loss of stabilized units. If you see a gradual decline in the number of + stabilized units that is more likely to represent a true destabilization of units, + especially if before 2019 when the passage of the Housing Stability and Tenant Protection + Act of 2019 (HSTPA) greatly limited the ways units could be legally destabilized. Even when + units are actually destabilized by landlords it does not mean that this was done legally. + The only way to know for sure whether your apartment is rent stabilized, was illegally + destabilized, or if you are being overcharged is to{" "} + + request your rent history + {" "} + from HCR. Once you receive it, you can use{" "} + + this Learning Center article + {" "} + to guide you in reading your rent history document. + + ), + }, }; const IndicatorsDatasetRadioWithoutI18n: React.FC<{ diff --git a/client/src/components/IndicatorsTypes.tsx b/client/src/components/IndicatorsTypes.tsx index 7d0b7c389..d7dc91d74 100644 --- a/client/src/components/IndicatorsTypes.tsx +++ b/client/src/components/IndicatorsTypes.tsx @@ -14,6 +14,7 @@ export const indicatorsDatasetIds = [ "dobpermits", "dobviolations", "evictionfilings", + "rentstabilizedunits", ] as const; export type IndicatorsDatasetId = typeof indicatorsDatasetIds[number]; @@ -77,6 +78,12 @@ interface EvictionFilingsData extends IndicatorsData { }; } +interface RentStabilizedUnitsData extends IndicatorsData { + values: { + total: number[] | null; + }; +} + export type IndicatorsDataIndex = { [k in IndicatorsDatasetId]: IndicatorsData; }; @@ -87,6 +94,7 @@ export type IndicatorsDataFromAPI = IndicatorsDataIndex & { dobpermits: DobPermitsData; dobviolations: DobViolationsData; evictionfilings: EvictionFilingsData; + rentstabilizedunits: RentStabilizedUnitsData; }; export const indicatorsInitialDataStructure: IndicatorsDataFromAPI = { @@ -132,6 +140,13 @@ export const indicatorsInitialDataStructure: IndicatorsDataFromAPI = { total: null, }, }, + + rentstabilizedunits: { + labels: null, + values: { + total: null, + }, + }, }; // Types Relating to the State of the Indicators Component: diff --git a/client/src/components/IndicatorsViz.tsx b/client/src/components/IndicatorsViz.tsx index 6e139b201..bf6145e35 100644 --- a/client/src/components/IndicatorsViz.tsx +++ b/client/src/components/IndicatorsViz.tsx @@ -1,7 +1,7 @@ import React, { Component } from "react"; import { Bar, ChartData } from "react-chartjs-2"; import { I18n, withI18nProps } from "@lingui/react"; -import { t } from "@lingui/macro"; +import { plural, t } from "@lingui/macro"; import * as chartjs from "chart.js"; // reference: https://github.com/jerairrest/react-chartjs-2 @@ -10,7 +10,7 @@ import * as ChartAnnotation from "chartjs-plugin-annotation"; // reference: https://github.com/chartjs/chartjs-plugin-annotation // why we're using this import format: https://stackoverflow.com/questions/51664741/chartjs-plugin-annotations-not-displayed-in-angular-5/53071497#53071497 -import Helpers, { mediumDateOptions, shortDateOptions } from "../util/helpers"; +import Helpers, { longDateOptions, mediumDateOptions, shortDateOptions } from "../util/helpers"; import "styles/Indicators.css"; import { indicatorsDatasetIds, IndicatorsState } from "./IndicatorsTypes"; @@ -165,10 +165,15 @@ class IndicatorsVizImplementation extends Component { + // Rent stabilized unit counts are usually an outlier and may skew the suggested Y axis calculation for other indicators + const indicatorsWithoutRentStab = indicatorsDatasetIds.filter( + (id) => id !== "rentstabilizedunits" + ); + + var dataMaximums = indicatorsWithoutRentStab.map((datasetName) => { const { total } = timelineData[datasetName].values; return total ? Helpers.maxArray(this.groupData(total) || [0]) : 0; }); @@ -177,13 +182,16 @@ class IndicatorsVizImplementation extends Component { + window.open(acrisURL, "_blank"); + }, + } + : { + drawTime: "beforeDatasetsDraw", + type: "line", + mode: "vertical", + scaleID: "x-axis-0", + value: labelPosition, + borderColor: dateLocation === "current" ? "rgb(68, 77, 93)" : "rgba(0,0,0,0)", + borderWidth: 2, + label: { + content: i18n._(t`Last Sale Unknown`), + fontStyle: "normal", + xPadding: 10, + yPadding: 10, + backgroundColor: "rgb(68, 77, 93)", + position: "top", + xAdjust: dateLocation === "past" ? -70 : dateLocation === "future" ? 70 : 0, + yAdjust: 10, + enabled: true, + cornerRadius: 0, + }, + onClick: () => { + window.open(acrisURL, "_blank"); + }, + }, + this.props.activeVis === "rentstabilizedunits" && + !!unitsres && { + drawTime: "afterDatasetsDraw", + type: "line", + mode: "horizontal", + scaleID: "y-axis-0", + value: unitsres, + borderColor: "rgb(81, 136, 255)", + borderWidth: 2, + borderDash: [10, 10], + label: { + content: i18n._( + plural({ + value: unitsres, + one: "1 unit total", + other: "# units total", + }) + ), + fontStyle: "normal", + fontColor: "rgb(0,0,0)", + backgroundColor: "rgb(81, 136, 255)", + position: "center", + enabled: true, + cornerRadius: 0, + }, }, - onClick: () => { - window.open(acrisURL, "_blank"); - }, - }, - !!this.props.lastSale.date && { - drawTime: "beforeDatasetsDraw", - type: "line", - mode: "vertical", - scaleID: "x-axis-0", - value: labelPosition, - borderColor: "rgba(0,0,0,0)", - borderWidth: 0, - label: { - content: - (dateLocation === "past" ? "← " : "") + - Helpers.formatDate(this.props.lastSale.date, mediumDateOptions, locale) + - (dateLocation === "future" ? " →" : ""), - fontFamily: "Inconsolata, monospace", - fontColor: "#fff", - fontSize: 12, - xPadding: 10, - yPadding: 10, - backgroundColor: "rgb(69, 77, 93)", - position: "top", - xAdjust: dateLocation === "past" ? -70 : dateLocation === "future" ? 70 : 0, - yAdjust: 30, - enabled: true, - cornerRadius: 0, - }, - onClick: () => { - window.open(acrisURL, "_blank"); - }, - }, - this.props.activeVis === "hpdcomplaints" && { - drawTime: "beforeDatasetsDraw", - type: "line", - mode: "vertical", - scaleID: "x-axis-0", - value: timeSpan === "quarter" ? "2012-Q4" : timeSpan === "year" ? "2012" : "2013-10", - borderColor: "rgba(0,0,0,0)", - borderWidth: 0, - label: { - content: "← " + i18n._(t`No data available`), - fontFamily: "Inconsolata, monospace", - fontColor: "#e85600", - fontSize: 12, - xPadding: 10, - yPadding: 10, - backgroundColor: "rgba(0,0,0,0)", - position: "top", - xAdjust: 0, - yAdjust: 105, - enabled: true, - cornerRadius: 0, - }, - }, ]), drawTime: "afterDraw", // (default) }, diff --git a/client/src/containers/AddressPage.tsx b/client/src/containers/AddressPage.tsx index 1959f0ff6..7ffabe2a0 100644 --- a/client/src/containers/AddressPage.tsx +++ b/client/src/containers/AddressPage.tsx @@ -4,7 +4,7 @@ import AddressToolbar from "../components/AddressToolbar"; import PropertiesMap from "../components/PropertiesMap"; import PropertiesList, { FilterContextProvider } from "../components/PropertiesList"; import PropertiesSummary from "../components/PropertiesSummary"; -import Indicators from "../components/Indicators"; +import Indicators, { validateIndicatorParam } from "../components/Indicators"; import DetailView from "../components/DetailView"; import { LoadingPage } from "../components/Loader"; @@ -20,7 +20,7 @@ import { withMachineProps } from "state-machine"; import { AddrNotFoundPage } from "./NotFoundPage"; import { searchAddrsAreEqual } from "util/helpers"; import { NetworkErrorMessage } from "components/NetworkErrorMessage"; -import { createAddressPageRoutes } from "routes"; +import { removeIndicatorSuffix, createAddressPageRoutes } from "routes"; import { isLegacyPath } from "../components/WowzaToggle"; import { logAmplitudeEvent } from "components/Amplitude"; @@ -29,6 +29,7 @@ type RouteParams = { boro?: string; housenumber?: string; streetname?: string; + indicator?: string; }; type RouteState = { @@ -60,7 +61,11 @@ const validateRouteParams = (params: RouteParams) => { housenumber: params.housenumber, bbl: "", }; - return { ...searchAddress, locale: params.locale }; + return { + ...searchAddress, + locale: params.locale, + indicator: validateIndicatorParam(params.indicator), + }; } }; @@ -203,7 +208,7 @@ export default class AddressPage extends Component {
  • { logAmplitudeEvent("timelineTab"); diff --git a/client/src/locales/en/messages.po b/client/src/locales/en/messages.po index c54e60edc..9b6d90188 100644 --- a/client/src/locales/en/messages.po +++ b/client/src/locales/en/messages.po @@ -66,6 +66,10 @@ msgstr "311 Complaints Data" msgid "<0>If the landlord doesn't reside here, this property should be registered with HPD because it has fewer than 3 residential units." msgstr "<0>If the landlord doesn't reside here, this property should be registered with HPD because it has fewer than 3 residential units." +#: src/components/IndicatorsDatasets.tsx:168 +msgid "<0>Rent stabilization protects tenants by limiting rent increases and providing the right to lease renewals. Landlords register rent-stabilized units each year with NYS Homes and Community Renewal (HCR). Though the agency does not directly make this data available, the number of registered rent-stabilized units appears on public city property tax bills. JustFix and open-source community projects have extracted these numbers to compile a <1>dataset of building-level counts of rent-stabilized units from 2007 to 2022.<2/><3/>A significant limitation of the data is that <4>landlords will sometimes fail to register the units or do so late, and in the tax bills, it appears there are no rent-stabilized units. For this reason, you may see a sudden drop of registered units to zero, but this doesn’t necessarily reflect an actual loss of stabilized units. If you see a gradual decline in the number of stabilized units that is more likely to represent a true destabilization of units, especially if before 2019 when the passage of the Housing Stability and Tenant Protection Act of 2019 (HSTPA) greatly limited the ways units could be legally destabilized. Even when units are actually destabilized by landlords it does not mean that this was done legally. The only way to know for sure whether your apartment is rent stabilized, was illegally destabilized, or if you are being overcharged is to <5>request your rent history from HCR. Once you receive it, you can use <6>this Learning Center article to guide you in reading your rent history document." +msgstr "<0>Rent stabilization protects tenants by limiting rent increases and providing the right to lease renewals. Landlords register rent-stabilized units each year with NYS Homes and Community Renewal (HCR). Though the agency does not directly make this data available, the number of registered rent-stabilized units appears on public city property tax bills. JustFix and open-source community projects have extracted these numbers to compile a <1>dataset of building-level counts of rent-stabilized units from 2007 to 2022.<2/><3/>A significant limitation of the data is that <4>landlords will sometimes fail to register the units or do so late, and in the tax bills, it appears there are no rent-stabilized units. For this reason, you may see a sudden drop of registered units to zero, but this doesn’t necessarily reflect an actual loss of stabilized units. If you see a gradual decline in the number of stabilized units that is more likely to represent a true destabilization of units, especially if before 2019 when the passage of the Housing Stability and Tenant Protection Act of 2019 (HSTPA) greatly limited the ways units could be legally destabilized. Even when units are actually destabilized by landlords it does not mean that this was done legally. The only way to know for sure whether your apartment is rent stabilized, was illegally destabilized, or if you are being overcharged is to <5>request your rent history from HCR. Once you receive it, you can use <6>this Learning Center article to guide you in reading your rent history document." + #: src/containers/NotRegisteredPage.tsx:72 msgid "<0>This property is not required to register with HPD because it doesn't have any residential units." msgstr "<0>This property is not required to register with HPD because it doesn't have any residential units." @@ -134,8 +138,12 @@ msgid "Amount" msgstr "Amount" #: src/components/IndicatorsDatasets.tsx:136 -msgid "An “eviction filing” is a legal case for eviction commenced by a landlord against a tenant in Housing Court. Such a case can be commenced for nonpayment of rent (most commonly) or for a violation of the lease (such as a nuisance). The eviction filings number only represents cases filed in Housing Court (data from the New York State Office of Court Administration <0>via the Housing Data Coalition in collaboration with the <1>Right to Counsel Coalition) and not evictions carried out by NYC Marshals.<2/>If you or someone you know is facing eviction and want to learn more about your rights, head over to <3>Housing Court Answers for more information.<4/>Due to privacy restrictions on the use of these data, eviction filings cannot be shown for buildings with fewer than 11 units." -msgstr "An “eviction filing” is a legal case for eviction commenced by a landlord against a tenant in Housing Court. Such a case can be commenced for nonpayment of rent (most commonly) or for a violation of the lease (such as a nuisance). The eviction filings number only represents cases filed in Housing Court (data from the New York State Office of Court Administration <0>via the Housing Data Coalition in collaboration with the <1>Right to Counsel Coalition) and not evictions carried out by NYC Marshals.<2/>If you or someone you know is facing eviction and want to learn more about your rights, head over to <3>Housing Court Answers for more information.<4/>Due to privacy restrictions on the use of these data, eviction filings cannot be shown for buildings with fewer than 11 units." +msgid "An “eviction filing” is a legal case for eviction commenced by a landlord against a tenant in Housing Court. Such a case can be commenced for nonpayment of rent (most commonly) or for a violation of the lease (such as a nuisance). The eviction filings number only represents cases filed in Housing Court (data from the New York State Office of Court Administration <0>via the Housing Data Coalition in collaboration with the <1>Right to Counsel Coalition) and not evictions carried out by NYC Marshals.<2/><3/>If you or someone you know is facing eviction and want to learn more about your rights, head over to <4>Housing Court Answers for more information.<5/><6/>Due to privacy restrictions on the use of these data, eviction filings cannot be shown for buildings with fewer than 11 units." +msgstr "An “eviction filing” is a legal case for eviction commenced by a landlord against a tenant in Housing Court. Such a case can be commenced for nonpayment of rent (most commonly) or for a violation of the lease (such as a nuisance). The eviction filings number only represents cases filed in Housing Court (data from the New York State Office of Court Administration <0>via the Housing Data Coalition in collaboration with the <1>Right to Counsel Coalition) and not evictions carried out by NYC Marshals.<2/><3/>If you or someone you know is facing eviction and want to learn more about your rights, head over to <4>Housing Court Answers for more information.<5/><6/>Due to privacy restrictions on the use of these data, eviction filings cannot be shown for buildings with fewer than 11 units." + +#: src/components/IndicatorsDatasets.tsx:136 +#~ msgid "An “eviction filing” is a legal case for eviction commenced by a landlord against a tenant in Housing Court. Such a case can be commenced for nonpayment of rent (most commonly) or for a violation of the lease (such as a nuisance). The eviction filings number only represents cases filed in Housing Court (data from the New York State Office of Court Administration <0>via the Housing Data Coalition in collaboration with the <1>Right to Counsel Coalition) and not evictions carried out by NYC Marshals.<2/>If you or someone you know is facing eviction and want to learn more about your rights, head over to <3>Housing Court Answers for more information.<4/>Due to privacy restrictions on the use of these data, eviction filings cannot be shown for buildings with fewer than 11 units." +#~ msgstr "An “eviction filing” is a legal case for eviction commenced by a landlord against a tenant in Housing Court. Such a case can be commenced for nonpayment of rent (most commonly) or for a violation of the lease (such as a nuisance). The eviction filings number only represents cases filed in Housing Court (data from the New York State Office of Court Administration <0>via the Housing Data Coalition in collaboration with the <1>Right to Counsel Coalition) and not evictions carried out by NYC Marshals.<2/>If you or someone you know is facing eviction and want to learn more about your rights, head over to <3>Housing Court Answers for more information.<4/>Due to privacy restrictions on the use of these data, eviction filings cannot be shown for buildings with fewer than 11 units." #: src/components/IndicatorsDatasets.tsx:136 #~ msgid "An “eviction filing” is a legal case for eviction commenced by a landlord against a tenant in Housing Court. Such a case can be commenced for nonpayment of rent (most commonly) or for a violation of the lease (such as a nuisance). The eviction filings number only represents cases filed in Housing Court (data from the New York State Office of Court Administration<0>via the Housing Data Coalition in collaboration with the <1>Right to Counsel Coalition) and not evictions carried out by NYC Marshals.<2/>If you or someone you know is facing eviction and want to learn more about your rights, head over to <3>Housing Court Answers for more information.<4/>Due to privacy restrictions on the use of these data, eviction filings cannot be shown for buildings with fewer than 11 units." @@ -185,7 +193,7 @@ msgid "Building Permit Applications" msgstr "Building Permit Applications" #: src/components/IndicatorsDatasets.tsx:75 -#: src/components/IndicatorsViz.tsx:183 +#: src/components/IndicatorsViz.tsx:188 msgid "Building Permits Applied For" msgstr "Building Permits Applied For" @@ -244,19 +252,19 @@ msgstr "Check out the issues in this building" msgid "Civil penalties of $250-$500" msgstr "Civil penalties of $250-$500" -#: src/components/IndicatorsViz.tsx:154 +#: src/components/IndicatorsViz.tsx:159 msgid "Class A" msgstr "Class A" -#: src/components/IndicatorsViz.tsx:147 +#: src/components/IndicatorsViz.tsx:152 msgid "Class B" msgstr "Class B" -#: src/components/IndicatorsViz.tsx:140 +#: src/components/IndicatorsViz.tsx:145 msgid "Class C" msgstr "Class C" -#: src/components/IndicatorsViz.tsx:133 +#: src/components/IndicatorsViz.tsx:138 msgid "Class I" msgstr "Class I" @@ -365,8 +373,8 @@ msgstr "Demo Site" msgid "Disclaimer: The information in JustFix does not constitute legal advice and must not be used as a substitute for the advice of a lawyer qualified to give advice on legal issues pertaining to housing. We can help direct you to free legal services if necessary." msgstr "Disclaimer: The information in JustFix does not constitute legal advice and must not be used as a substitute for the advice of a lawyer qualified to give advice on legal issues pertaining to housing. We can help direct you to free legal services if necessary." -#: src/components/Indicators.tsx:169 -#: src/components/Indicators.tsx:172 +#: src/components/Indicators.tsx:189 +#: src/components/Indicators.tsx:192 msgid "Display:" msgstr "Display:" @@ -379,7 +387,7 @@ msgstr "Donate" msgid "Download" msgstr "Download" -#: src/components/IndicatorsViz.tsx:194 +#: src/components/IndicatorsViz.tsx:199 msgid "ECB" msgstr "ECB" @@ -395,7 +403,7 @@ msgstr "ELEVATOR" msgid "Email" msgstr "Email" -#: src/components/IndicatorsViz.tsx:165 +#: src/components/IndicatorsViz.tsx:170 msgid "Emergency" msgstr "Emergency" @@ -427,7 +435,7 @@ msgstr "Enter minimum and maximum number of units, or leave either blank, then a #: src/components/BuildingStatsTable.tsx:80 #: src/components/IndicatorsDatasets.tsx:126 #: src/components/IndicatorsDatasets.tsx:135 -#: src/components/IndicatorsViz.tsx:212 +#: src/components/IndicatorsViz.tsx:217 msgid "Eviction Filings" msgstr "Eviction Filings" @@ -700,7 +708,7 @@ msgstr "Last 3 Years" msgid "Last Sale" msgstr "Last Sale" -#: src/components/IndicatorsViz.tsx:387 +#: src/components/IndicatorsViz.tsx:439 msgid "Last Sale Unknown" msgstr "Last Sale Unknown" @@ -853,11 +861,11 @@ msgstr "More Mobile Friendly" msgid "Most Common 311 Complaints, Last 3 Years" msgstr "Most Common 311 Complaints, Last 3 Years" -#: src/components/Indicators.tsx:200 +#: src/components/Indicators.tsx:220 msgid "Move chart data left." msgstr "Move chart data left." -#: src/components/Indicators.tsx:209 +#: src/components/Indicators.tsx:229 msgid "Move chart data right." msgstr "Move chart data right." @@ -915,8 +923,8 @@ msgid "No address found" msgstr "No address found" #: src/components/IndicatorsViz.tsx:441 -msgid "No data available" -msgstr "No data available" +#~ msgid "No data available" +#~ msgstr "No data available" #: src/components/LandlordSearch.tsx:89 msgid "No landlords match your search." @@ -930,11 +938,11 @@ msgstr "No registration found for {usersInputAddressFragment}." msgid "No registration found." msgstr "No registration found." -#: src/components/IndicatorsViz.tsx:201 +#: src/components/IndicatorsViz.tsx:206 msgid "Non-ECB" msgstr "Non-ECB" -#: src/components/IndicatorsViz.tsx:172 +#: src/components/IndicatorsViz.tsx:177 msgid "Non-Emergency" msgstr "Non-Emergency" @@ -950,6 +958,7 @@ msgstr "Not found" #~ msgid "Notice an inaccuracy? Click here." #~ msgstr "Notice an inaccuracy? Click here." +#: src/components/IndicatorsDatasets.tsx:167 #: src/components/PortfolioFilters.tsx:145 msgid "Number of Units" msgstr "Number of Units" @@ -1091,6 +1100,8 @@ msgstr "Read more in our Methodology section" msgid "Registration expired:" msgstr "Registration expired:" +#: src/components/IndicatorsDatasets.tsx:164 +#: src/components/IndicatorsViz.tsx:228 #: src/components/PortfolioFilters.tsx:139 msgid "Rent Stabilized Units" msgstr "Rent Stabilized Units" @@ -1099,6 +1110,10 @@ msgstr "Rent Stabilized Units" msgid "Rent Stabilized Units filter" msgstr "Rent Stabilized Units filter" +#: src/components/IndicatorsDatasets.tsx:166 +msgid "Rent Stabilized Units registered since 2010" +msgstr "Rent Stabilized Units registered since 2010" + #: src/components/PropertiesSummary.tsx:126 msgid "Rent stabilization" msgstr "Rent stabilization" @@ -1251,9 +1266,13 @@ msgstr "Since {year}" msgid "Site Manager" msgstr "Site Manager" +#: src/components/IndicatorsViz.tsx:412 +msgid "Sold" +msgstr "Sold" + #: src/components/IndicatorsViz.tsx:386 -msgid "Sold to Current Owner" -msgstr "Sold to Current Owner" +#~ msgid "Sold to Current Owner" +#~ msgstr "Sold to Current Owner" #: src/components/PortfolioAlerts.tsx:52 msgid "Some large corporations, however, are a bit more complicated and may share personnel and financial stake with other related companies, which all will show up on Who Owns What as one large portfolio." @@ -1473,7 +1492,7 @@ msgstr "Timeline" msgid "Top Complaint" msgstr "Top Complaint" -#: src/components/IndicatorsViz.tsx:349 +#: src/components/IndicatorsViz.tsx:374 #: src/components/PortfolioTable.tsx:184 #: src/components/PortfolioTable.tsx:225 msgid "Total" @@ -1539,8 +1558,8 @@ msgstr "View Detail" msgid "View Results" msgstr "View Results" -#: src/components/Indicators.tsx:180 -#: src/components/Indicators.tsx:183 +#: src/components/Indicators.tsx:200 +#: src/components/Indicators.tsx:203 msgid "View by:" msgstr "View by:" @@ -1635,7 +1654,7 @@ msgstr "We’ve improved Who Owns What to dig deeper into the data and offer you #~ msgid "We’ve improved Who Owns What to dig deeper into the data and offer you a more complete picture of buildings associated with your landlord. <0>Read more on our Methodology page" #~ msgstr "We’ve improved Who Owns What to dig deeper into the data and offer you a more complete picture of buildings associated with your landlord. <0>Read more on our Methodology page" -#: src/components/Indicators.tsx:223 +#: src/components/Indicators.tsx:243 msgid "What are {0}?" msgstr "What are {0}?" @@ -1775,7 +1794,7 @@ msgstr "associated building" msgid "for ${0}" msgstr "for ${0}" -#: src/components/Indicators.tsx:16 +#: src/components/Indicators.tsx:18 msgid "month" msgstr "month" @@ -1791,7 +1810,7 @@ msgstr "of" #~ msgid "page number" #~ msgstr "page number" -#: src/components/Indicators.tsx:17 +#: src/components/Indicators.tsx:19 msgid "quarter" msgstr "quarter" @@ -1803,7 +1822,7 @@ msgstr "search address" #~ msgid "to" #~ msgstr "to" -#: src/components/Indicators.tsx:18 +#: src/components/Indicators.tsx:20 msgid "year" msgstr "year" @@ -1827,6 +1846,10 @@ msgstr "{0} {1}, {2} currently has {3, plural, one {one open HPD violation} othe msgid "{numberOfHits} {numberOfHits, plural, one {search result} other {search results}}." msgstr "{numberOfHits} {numberOfHits, plural, one {search result} other {search results}}." +#: src/components/IndicatorsViz.tsx:465 +msgid "{unitsres, plural, one {1 unit total} other {# units total}}" +msgstr "{unitsres, plural, one {1 unit total} other {# units total}}" + #: src/components/IndicatorsDatasets.tsx:70 msgid "{value, plural, one {One Building Permit Application since 2010} other {# Building Permit Applications since 2010}}" msgstr "{value, plural, one {One Building Permit Application since 2010} other {# Building Permit Applications since 2010}}" diff --git a/client/src/locales/es/messages.po b/client/src/locales/es/messages.po index 2ae1d91b5..464da5af6 100644 --- a/client/src/locales/es/messages.po +++ b/client/src/locales/es/messages.po @@ -71,6 +71,10 @@ msgstr "Datos de quejas al 311" msgid "<0>If the landlord doesn't reside here, this property should be registered with HPD because it has fewer than 3 residential units." msgstr "<0>Si el dueño no reside aquí, esta propiedad debería estar registrado con el HPD porque tiene menos de 3 unidades residenciales." +#: src/components/IndicatorsDatasets.tsx:168 +msgid "<0>Rent stabilization protects tenants by limiting rent increases and providing the right to lease renewals. Landlords register rent-stabilized units each year with NYS Homes and Community Renewal (HCR). Though the agency does not directly make this data available, the number of registered rent-stabilized units appears on public city property tax bills. JustFix and open-source community projects have extracted these numbers to compile a <1>dataset of building-level counts of rent-stabilized units from 2007 to 2022.<2/><3/>A significant limitation of the data is that <4>landlords will sometimes fail to register the units or do so late, and in the tax bills, it appears there are no rent-stabilized units. For this reason, you may see a sudden drop of registered units to zero, but this doesn’t necessarily reflect an actual loss of stabilized units. If you see a gradual decline in the number of stabilized units that is more likely to represent a true destabilization of units, especially if before 2019 when the passage of the Housing Stability and Tenant Protection Act of 2019 (HSTPA) greatly limited the ways units could be legally destabilized. Even when units are actually destabilized by landlords it does not mean that this was done legally. The only way to know for sure whether your apartment is rent stabilized, was illegally destabilized, or if you are being overcharged is to <5>request your rent history from HCR. Once you receive it, you can use <6>this Learning Center article to guide you in reading your rent history document." +msgstr "" + #: src/containers/NotRegisteredPage.tsx:72 msgid "<0>This property is not required to register with HPD because it doesn't have any residential units." msgstr "<0>Esta propiedad no necesita estar registrada con en HPD porque no tiene ninguna unidad residencial." @@ -139,8 +143,12 @@ msgid "Amount" msgstr "Importe" #: src/components/IndicatorsDatasets.tsx:136 -msgid "An “eviction filing” is a legal case for eviction commenced by a landlord against a tenant in Housing Court. Such a case can be commenced for nonpayment of rent (most commonly) or for a violation of the lease (such as a nuisance). The eviction filings number only represents cases filed in Housing Court (data from the New York State Office of Court Administration <0>via the Housing Data Coalition in collaboration with the <1>Right to Counsel Coalition) and not evictions carried out by NYC Marshals.<2/>If you or someone you know is facing eviction and want to learn more about your rights, head over to <3>Housing Court Answers for more information.<4/>Due to privacy restrictions on the use of these data, eviction filings cannot be shown for buildings with fewer than 11 units." -msgstr "Una \"demanda de desalojo\" es un caso legal de desalojo iniciado por un dueño contra un inquilino en la Corte de Vivienda. Este caso puede iniciarse por falta de pago de la renta (lo más común) o por una violación del contrato de alquiler (como una molestia). La cifra de desalojos sólo representa los casos presentados ante la Corte de Vivienda (datos de la Oficina de Administración de la Corte del Estado de Nueva York <0>a través de la Coalición de Datos de Vivienda en colaboración con la <1>Coalición del Derecho a la Defensa o RTC) y no los desalojos llevados a cabo por los Alguaciles de la Ciudad de Nueva York.<2/>Si usted o alguien que conoce se enfrenta a un desalojo y quiere saber más sobre sus derechos, diríjase a <3>Housing Court Answers para obtener más información.<4/>Debido a las restricciones de privacidad en el uso de estos datos, no se pueden mostrar los desalojos de edificios con menos de 11 unidades." +msgid "An “eviction filing” is a legal case for eviction commenced by a landlord against a tenant in Housing Court. Such a case can be commenced for nonpayment of rent (most commonly) or for a violation of the lease (such as a nuisance). The eviction filings number only represents cases filed in Housing Court (data from the New York State Office of Court Administration <0>via the Housing Data Coalition in collaboration with the <1>Right to Counsel Coalition) and not evictions carried out by NYC Marshals.<2/><3/>If you or someone you know is facing eviction and want to learn more about your rights, head over to <4>Housing Court Answers for more information.<5/><6/>Due to privacy restrictions on the use of these data, eviction filings cannot be shown for buildings with fewer than 11 units." +msgstr "" + +#: src/components/IndicatorsDatasets.tsx:136 +#~ msgid "An “eviction filing” is a legal case for eviction commenced by a landlord against a tenant in Housing Court. Such a case can be commenced for nonpayment of rent (most commonly) or for a violation of the lease (such as a nuisance). The eviction filings number only represents cases filed in Housing Court (data from the New York State Office of Court Administration <0>via the Housing Data Coalition in collaboration with the <1>Right to Counsel Coalition) and not evictions carried out by NYC Marshals.<2/>If you or someone you know is facing eviction and want to learn more about your rights, head over to <3>Housing Court Answers for more information.<4/>Due to privacy restrictions on the use of these data, eviction filings cannot be shown for buildings with fewer than 11 units." +#~ msgstr "Una \"demanda de desalojo\" es un caso legal de desalojo iniciado por un dueño contra un inquilino en la Corte de Vivienda. Este caso puede iniciarse por falta de pago de la renta (lo más común) o por una violación del contrato de alquiler (como una molestia). La cifra de desalojos sólo representa los casos presentados ante la Corte de Vivienda (datos de la Oficina de Administración de la Corte del Estado de Nueva York <0>a través de la Coalición de Datos de Vivienda en colaboración con la <1>Coalición del Derecho a la Defensa o RTC) y no los desalojos llevados a cabo por los Alguaciles de la Ciudad de Nueva York.<2/>Si usted o alguien que conoce se enfrenta a un desalojo y quiere saber más sobre sus derechos, diríjase a <3>Housing Court Answers para obtener más información.<4/>Debido a las restricciones de privacidad en el uso de estos datos, no se pueden mostrar los desalojos de edificios con menos de 11 unidades." #: src/components/IndicatorsDatasets.tsx:136 #~ msgid "An “eviction filing” is a legal case for eviction commenced by a landlord against a tenant in Housing Court. Such a case can be commenced for nonpayment of rent (most commonly) or for a violation of the lease (such as a nuisance). The eviction filings number only represents cases filed in Housing Court (data from the New York State Office of Court Administration<0>via the Housing Data Coalition in collaboration with the <1>Right to Counsel Coalition) and not evictions carried out by NYC Marshals.<2/>If you or someone you know is facing eviction and want to learn more about your rights, head over to <3>Housing Court Answers for more information.<4/>Due to privacy restrictions on the use of these data, eviction filings cannot be shown for buildings with fewer than 11 units." @@ -190,7 +198,7 @@ msgid "Building Permit Applications" msgstr "Solicitudes de Permisos de Construcción" #: src/components/IndicatorsDatasets.tsx:75 -#: src/components/IndicatorsViz.tsx:183 +#: src/components/IndicatorsViz.tsx:188 msgid "Building Permits Applied For" msgstr "Permisos de Construcción Solicitados" @@ -249,19 +257,19 @@ msgstr "Mira los problemas en este edificio" msgid "Civil penalties of $250-$500" msgstr "Sanciones civiles de $250-$500" -#: src/components/IndicatorsViz.tsx:154 +#: src/components/IndicatorsViz.tsx:159 msgid "Class A" msgstr "Clase A" -#: src/components/IndicatorsViz.tsx:147 +#: src/components/IndicatorsViz.tsx:152 msgid "Class B" msgstr "Clase B" -#: src/components/IndicatorsViz.tsx:140 +#: src/components/IndicatorsViz.tsx:145 msgid "Class C" msgstr "Clase C" -#: src/components/IndicatorsViz.tsx:133 +#: src/components/IndicatorsViz.tsx:138 msgid "Class I" msgstr "Clase I" @@ -370,8 +378,8 @@ msgstr "Sitio Demo" msgid "Disclaimer: The information in JustFix does not constitute legal advice and must not be used as a substitute for the advice of a lawyer qualified to give advice on legal issues pertaining to housing. We can help direct you to free legal services if necessary." msgstr "Descargo de responsabilidad: La información en JustFix no constituye asesoramiento jurídico y no debe ser utilizado como sustituto del asesoramiento de un abogado cualificado para asesorar sobre cuestiones jurídicas relativas a la vivienda. Nosotros podemos ayudarte a dirigirte a servicios legales gratuitos si es necesario." -#: src/components/Indicators.tsx:169 -#: src/components/Indicators.tsx:172 +#: src/components/Indicators.tsx:189 +#: src/components/Indicators.tsx:192 msgid "Display:" msgstr "Mostrar:" @@ -384,7 +392,7 @@ msgstr "Donar" msgid "Download" msgstr "Descargar" -#: src/components/IndicatorsViz.tsx:194 +#: src/components/IndicatorsViz.tsx:199 msgid "ECB" msgstr "ECB" @@ -400,7 +408,7 @@ msgstr "ASCENSOR" msgid "Email" msgstr "Email" -#: src/components/IndicatorsViz.tsx:165 +#: src/components/IndicatorsViz.tsx:170 msgid "Emergency" msgstr "Emergencia" @@ -432,7 +440,7 @@ msgstr "Anote el número mínimo y máximo de unidades, o deje cualquiera de los #: src/components/BuildingStatsTable.tsx:80 #: src/components/IndicatorsDatasets.tsx:126 #: src/components/IndicatorsDatasets.tsx:135 -#: src/components/IndicatorsViz.tsx:212 +#: src/components/IndicatorsViz.tsx:217 msgid "Eviction Filings" msgstr "Demandas de desalojo" @@ -705,7 +713,7 @@ msgstr "Últimos 3 años" msgid "Last Sale" msgstr "Última venta" -#: src/components/IndicatorsViz.tsx:387 +#: src/components/IndicatorsViz.tsx:439 msgid "Last Sale Unknown" msgstr "Última venta desconocida" @@ -858,11 +866,11 @@ msgstr "Más útil para dispositivos móviles" msgid "Most Common 311 Complaints, Last 3 Years" msgstr "Las quejas más comunes de 311, los últimos 3 años" -#: src/components/Indicators.tsx:200 +#: src/components/Indicators.tsx:220 msgid "Move chart data left." msgstr "Mover datos del gráfico a la izquierda." -#: src/components/Indicators.tsx:209 +#: src/components/Indicators.tsx:229 msgid "Move chart data right." msgstr "Mover datos del gráfico a la derecha." @@ -920,8 +928,8 @@ msgid "No address found" msgstr "No se encontraron direcciones" #: src/components/IndicatorsViz.tsx:441 -msgid "No data available" -msgstr "No hay datos disponibles" +#~ msgid "No data available" +#~ msgstr "No hay datos disponibles" #: src/components/LandlordSearch.tsx:89 msgid "No landlords match your search." @@ -935,11 +943,11 @@ msgstr "No se ha encontrado ningún registro para {usersInputAddressFragment}." msgid "No registration found." msgstr "No se ha encontrado nigún registro." -#: src/components/IndicatorsViz.tsx:201 +#: src/components/IndicatorsViz.tsx:206 msgid "Non-ECB" msgstr "No ECB" -#: src/components/IndicatorsViz.tsx:172 +#: src/components/IndicatorsViz.tsx:177 msgid "Non-Emergency" msgstr "No Emergencia" @@ -955,6 +963,7 @@ msgstr "No encontrado" #~ msgid "Notice an inaccuracy? Click here." #~ msgstr "Notice an inaccuracy? Click here." +#: src/components/IndicatorsDatasets.tsx:167 #: src/components/PortfolioFilters.tsx:145 msgid "Number of Units" msgstr "Número de unidades" @@ -1096,6 +1105,8 @@ msgstr "Más información sobre nuestra metodología" msgid "Registration expired:" msgstr "El registro ha caducado:" +#: src/components/IndicatorsDatasets.tsx:164 +#: src/components/IndicatorsViz.tsx:228 #: src/components/PortfolioFilters.tsx:139 msgid "Rent Stabilized Units" msgstr "Unidades con renta estabilizada" @@ -1104,6 +1115,10 @@ msgstr "Unidades con renta estabilizada" msgid "Rent Stabilized Units filter" msgstr "Filtro de Unidades con renta estabilizada" +#: src/components/IndicatorsDatasets.tsx:166 +msgid "Rent Stabilized Units registered since 2010" +msgstr "" + #: src/components/PropertiesSummary.tsx:126 msgid "Rent stabilization" msgstr "Renta estabilizada" @@ -1256,9 +1271,13 @@ msgstr "Desde {year}" msgid "Site Manager" msgstr "Administrador del Sitio" +#: src/components/IndicatorsViz.tsx:412 +msgid "Sold" +msgstr "" + #: src/components/IndicatorsViz.tsx:386 -msgid "Sold to Current Owner" -msgstr "Vendido al Propietario Actual" +#~ msgid "Sold to Current Owner" +#~ msgstr "Vendido al Propietario Actual" #: src/components/PortfolioAlerts.tsx:52 msgid "Some large corporations, however, are a bit more complicated and may share personnel and financial stake with other related companies, which all will show up on Who Owns What as one large portfolio." @@ -1478,7 +1497,7 @@ msgstr "Cronología" msgid "Top Complaint" msgstr "Queja principal" -#: src/components/IndicatorsViz.tsx:349 +#: src/components/IndicatorsViz.tsx:374 #: src/components/PortfolioTable.tsx:184 #: src/components/PortfolioTable.tsx:225 msgid "Total" @@ -1544,8 +1563,8 @@ msgstr "Ver detalles" msgid "View Results" msgstr "Ver resultados" -#: src/components/Indicators.tsx:180 -#: src/components/Indicators.tsx:183 +#: src/components/Indicators.tsx:200 +#: src/components/Indicators.tsx:203 msgid "View by:" msgstr "Visualizar por:" @@ -1640,7 +1659,7 @@ msgstr "Hemos mejorado ¿Quién es el Dueño en NY? para profundizar en los dato #~ msgid "We’ve improved Who Owns What to dig deeper into the data and offer you a more complete picture of buildings associated with your landlord. <0>Read more on our Methodology page" #~ msgstr "We’ve improved Who Owns What to dig deeper into the data and offer you a more complete picture of buildings associated with your landlord. <0>Read more on our Methodology page" -#: src/components/Indicators.tsx:223 +#: src/components/Indicators.tsx:243 msgid "What are {0}?" msgstr "¿Qué son {0}?" @@ -1780,7 +1799,7 @@ msgstr "edificio asociado" msgid "for ${0}" msgstr "por ${0}" -#: src/components/Indicators.tsx:16 +#: src/components/Indicators.tsx:18 msgid "month" msgstr "mes" @@ -1796,7 +1815,7 @@ msgstr "de" #~ msgid "page number" #~ msgstr "page number" -#: src/components/Indicators.tsx:17 +#: src/components/Indicators.tsx:19 msgid "quarter" msgstr "trimestre" @@ -1808,7 +1827,7 @@ msgstr "dirección de búsqueda" #~ msgid "to" #~ msgstr "to" -#: src/components/Indicators.tsx:18 +#: src/components/Indicators.tsx:20 msgid "year" msgstr "año" @@ -1832,6 +1851,10 @@ msgstr "{0} {1}, {2} tiene {3, plural, one {una violación del HPD actual} other msgid "{numberOfHits} {numberOfHits, plural, one {search result} other {search results}}." msgstr "{numberOfHits} {numberOfHits, plural, one {resultado de búsqueda} other {resultados de búsqueda}}." +#: src/components/IndicatorsViz.tsx:465 +msgid "{unitsres, plural, one {1 unit total} other {# units total}}" +msgstr "" + #: src/components/IndicatorsDatasets.tsx:70 msgid "{value, plural, one {One Building Permit Application since 2010} other {# Building Permit Applications since 2010}}" msgstr "{value, plural, one {Una Solicitud de Permiso de Construcción desde el 2010} other {# Solicitudes de Permiso de Construcción desde el 2010}}" @@ -1851,4 +1874,3 @@ msgstr "{value, plural, one {Una Queja del HPD emitida desde el 2014} other {# Q #: src/components/IndicatorsDatasets.tsx:37 msgid "{value, plural, one {One HPD Violation Issued since 2010} other {# HPD Violations Issued since 2010}}" msgstr "{value, plural, one {Una Violación del HPD emitida desde el 2010} other {# Violaciones del HPD emitidas desde el 2010}}" - diff --git a/client/src/routes.test.tsx b/client/src/routes.test.tsx index 5c07d64e5..5ab15a078 100644 --- a/client/src/routes.test.tsx +++ b/client/src/routes.test.tsx @@ -32,7 +32,7 @@ describe("createAddressPageRoutes()", () => { }); it("prefixes with string when given one", () => { - expect(createAddressPageRoutes("/boop").timeline).toBe("/boop/timeline"); + expect(createAddressPageRoutes("/boop").summary).toBe("/boop/summary"); }); it("prefixes with address page params when given one", () => { @@ -41,8 +41,8 @@ describe("createAddressPageRoutes()", () => { boro: "BROOKLYN", housenumber: "654", streetname: "PARK PLACE", - }).timeline - ).toBe("/address/BROOKLYN/654/PARK%20PLACE/timeline"); + }).summary + ).toBe("/address/BROOKLYN/654/PARK%20PLACE/summary"); }); it("prefixes with address page params and locale when given one", () => { @@ -52,8 +52,8 @@ describe("createAddressPageRoutes()", () => { housenumber: "654", streetname: "PARK PLACE", locale: "es", - }).timeline - ).toBe("/es/address/BROOKLYN/654/PARK%20PLACE/timeline"); + }).summary + ).toBe("/es/address/BROOKLYN/654/PARK%20PLACE/summary"); }); it("correctly sets the right path when route is specified as a legacy route", () => { @@ -67,8 +67,8 @@ describe("createAddressPageRoutes()", () => { locale: "es", }, true - ).timeline - ).toBe("/es/legacy/address/BROOKLYN/654/PARK%20PLACE/timeline"); + ).summary + ).toBe("/es/legacy/address/BROOKLYN/654/PARK%20PLACE/summary"); }); it("defaults to the standard path when env variable is not defined", () => { @@ -82,7 +82,7 @@ describe("createAddressPageRoutes()", () => { locale: "es", }, true - ).timeline - ).toBe("/es/address/BROOKLYN/654/PARK%20PLACE/timeline"); + ).summary + ).toBe("/es/address/BROOKLYN/654/PARK%20PLACE/summary"); }); }); diff --git a/client/src/routes.tsx b/client/src/routes.tsx index 5b68a7fbe..47d212e09 100644 --- a/client/src/routes.tsx +++ b/client/src/routes.tsx @@ -4,6 +4,7 @@ import { removeLocalePrefix } from "i18n"; export type AddressPageUrlParams = SearchAddressWithoutBbl & { locale?: string; + indicator?: string; }; export type AddressPageRoutes = ReturnType; @@ -17,6 +18,8 @@ export const isAddressPageRoute = (pathname: string) => { return path.startsWith("/address"); }; +export const removeIndicatorSuffix = (pathname: string) => pathname.replace(/\/:indicator.*/, ""); + export const createRouteForAddressPage = ( params: AddressPageUrlParams, isLegacyRoute?: boolean @@ -60,7 +63,7 @@ export const createAddressPageRoutes = ( } return { overview: `${prefix}`, - timeline: `${prefix}/timeline`, + timeline: `${prefix}/timeline/:indicator?`, portfolio: `${prefix}/portfolio`, summary: `${prefix}/summary`, }; diff --git a/client/src/state-machine-sample-data.ts b/client/src/state-machine-sample-data.ts index e6528d1a3..4e36adc4b 100644 --- a/client/src/state-machine-sample-data.ts +++ b/client/src/state-machine-sample-data.ts @@ -240,6 +240,7 @@ export const SAMPLE_TIMELINE_DATA: IndicatorsHistoryResults = { dobviolations_ecb: 1, dobviolations_total: 2, evictionfilings_total: 0, + rentstabilizedunits_total: 4, }, ], }; diff --git a/requirements-dev.txt b/requirements-dev.txt index 326fde9bd..908c5e9b4 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,5 +1,5 @@ -r requirements.txt -https://github.com/nycdb/nycdb/archive/edda39af109b12fd708169b32abe80cfdfe01b17.zip#subdirectory=src +https://github.com/nycdb/nycdb/archive/fc7fa7a4bd1fb33a50fbc189992878761182ab13.zip#subdirectory=src mypy==0.782 PyYAML>=5.1 pytest==6.2.5 diff --git a/sql/create_bldgs_table.sql b/sql/create_bldgs_table.sql index b2019acdd..4139a53a6 100644 --- a/sql/create_bldgs_table.sql +++ b/sql/create_bldgs_table.sql @@ -29,8 +29,8 @@ rentstab as ( select ucbbl, coalesce(unitsstab2007, 0) rsunits2007, - coalesce(uc2021, 0) rsunitslatest, - coalesce(uc2021, 0) - coalesce(unitsstab2007, 0) rsdiff + coalesce(uc2022, 0) rsunitslatest, + coalesce(uc2022, 0) - coalesce(unitsstab2007, 0) rsdiff from rentstab_summary left join rentstab_v2 using(ucbbl) ), @@ -102,7 +102,7 @@ select distinct on (registrations.bbl) rentstab.rsunits2007, rentstab.rsunitslatest, -- Year of most recent rent stab data: - 2021 as rsunitslatestyear, + 2022 as rsunitslatestyear, rentstab.rsdiff, exemptions.yearstartedj51::smallint, exemptions.yearstarted421a::smallint, diff --git a/tests/data/rentstab_counts_from_doffer_2021.csv b/tests/data/rentstab_counts_from_doffer_2022.csv similarity index 71% rename from tests/data/rentstab_counts_from_doffer_2021.csv rename to tests/data/rentstab_counts_from_doffer_2022.csv index ea5cea150..684e99081 100644 --- a/tests/data/rentstab_counts_from_doffer_2021.csv +++ b/tests/data/rentstab_counts_from_doffer_2022.csv @@ -1,101 +1,101 @@ -ucbbl,uc2018,pdfsoa2018,uc2019,pdfsoa2019,uc2020,pdfsoa2020,uc2021,pdfsoa2021 -1000297501,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00029/7501/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00029/7501/soa-2020-06-06.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00029/7501/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00029/7501/soa-2022-06-04.pdf.br -1000780047,483,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/0047/soa-2019-06-05.pdf.br,483,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/0047/soa-2020-06-06.pdf.br,483,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/0047/soa-2021-06-05.pdf.br,483,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/0047/soa-2022-06-04.pdf.br -1000787510,28,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/7510/soa-2019-06-05.pdf.br,28,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/7510/soa-2020-06-06.pdf.br,28,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/7510/soa-2021-06-05.pdf.br,28,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/7510/soa-2022-06-04.pdf.br -1001350019,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00135/0019/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00135/0019/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00135/0019/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00135/0019/soa-2022-06-04.pdf.br -1001477503,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7503/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7503/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7503/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7503/soa-2022-06-04.pdf.br -1001477509,NA,NA,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7509/soa-2020-06-06.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7509/soa-2021-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7509/soa-2022-06-04.pdf.br -1001620013,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00162/0013/soa-2019-06-05.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00162/0013/soa-2020-06-06.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00162/0013/soa-2021-06-05.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00162/0013/soa-2022-06-04.pdf.br -1001630024,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0024/soa-2019-06-05.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0024/soa-2020-06-06.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0024/soa-2021-06-05.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0024/soa-2022-06-04.pdf.br -1001630033,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0033/soa-2019-06-05.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0033/soa-2020-06-06.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0033/soa-2021-06-05.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0033/soa-2022-06-04.pdf.br -1001640049,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0049/soa-2019-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0049/soa-2020-06-06.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0049/soa-2021-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0049/soa-2022-06-04.pdf.br -1001640066,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0066/soa-2019-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0066/soa-2020-06-06.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0066/soa-2021-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0066/soa-2022-06-04.pdf.br -1001990011,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0011/soa-2019-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0011/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0011/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0011/soa-2022-06-04.pdf.br -1001990031,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0031/soa-2019-06-05.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0031/soa-2020-06-06.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0031/soa-2021-06-05.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0031/soa-2022-06-04.pdf.br -1002000011,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0011/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0011/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0011/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0011/soa-2022-06-04.pdf.br -1002000028,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0028/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0028/soa-2020-06-06.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0028/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0028/soa-2022-06-04.pdf.br -1002027501,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00202/7501/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00202/7501/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00202/7501/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00202/7501/soa-2022-06-04.pdf.br -1002050023,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00205/0023/soa-2019-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00205/0023/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00205/0023/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00205/0023/soa-2022-06-04.pdf.br -1002140026,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00214/0026/soa-2019-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00214/0026/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00214/0026/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00214/0026/soa-2022-06-04.pdf.br -1002350005,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00235/0005/soa-2019-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00235/0005/soa-2020-06-06.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00235/0005/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00235/0005/soa-2022-06-04.pdf.br -1002360026,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00236/0026/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00236/0026/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00236/0026/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00236/0026/soa-2022-06-04.pdf.br -1002370011,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0011/soa-2019-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0011/soa-2020-06-06.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0011/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0011/soa-2022-06-04.pdf.br -1002370023,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0023/soa-2019-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0023/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0023/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0023/soa-2022-06-04.pdf.br -1002370034,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0034/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0034/soa-2020-06-06.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0034/soa-2021-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0034/soa-2022-06-04.pdf.br -1002380014,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0014/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0014/soa-2020-06-06.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0014/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0014/soa-2022-06-04.pdf.br -1002380035,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0035/soa-2019-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0035/soa-2020-06-06.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0035/soa-2021-06-05.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0035/soa-2022-06-04.pdf.br -1002710043,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0043/soa-2019-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0043/soa-2020-06-06.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0043/soa-2021-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0043/soa-2022-06-04.pdf.br -1002710053,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0053/soa-2019-06-05.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0053/soa-2020-06-06.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0053/soa-2021-06-05.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0053/soa-2022-06-04.pdf.br -1002730024,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00273/0024/soa-2019-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00273/0024/soa-2020-06-06.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00273/0024/soa-2021-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00273/0024/soa-2022-06-04.pdf.br -1002750027,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00275/0027/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00275/0027/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00275/0027/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00275/0027/soa-2022-06-04.pdf.br -1002760010,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0010/soa-2019-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0010/soa-2020-06-06.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0010/soa-2021-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0010/soa-2022-06-04.pdf.br -1002760033,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0033/soa-2019-06-05.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0033/soa-2020-06-06.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0033/soa-2021-06-05.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0033/soa-2022-06-04.pdf.br -1002770001,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0001/soa-2019-06-05.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0001/soa-2020-06-06.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0001/soa-2021-06-05.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0001/soa-2022-06-04.pdf.br -1002770029,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0029/soa-2019-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0029/soa-2020-06-06.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0029/soa-2021-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0029/soa-2022-06-04.pdf.br -1002770043,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0043/soa-2019-06-05.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0043/soa-2020-06-06.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0043/soa-2021-06-05.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0043/soa-2022-06-04.pdf.br -1002770054,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0054/soa-2019-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0054/soa-2020-06-06.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0054/soa-2021-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0054/soa-2022-06-04.pdf.br -1002790029,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00279/0029/soa-2019-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00279/0029/soa-2020-06-06.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00279/0029/soa-2021-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00279/0029/soa-2022-06-04.pdf.br -1002800003,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0003/soa-2019-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0003/soa-2020-06-06.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0003/soa-2021-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0003/soa-2022-06-04.pdf.br -1002800013,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0013/soa-2019-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0013/soa-2020-06-06.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0013/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0013/soa-2022-06-04.pdf.br -1002810017,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0017/soa-2019-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0017/soa-2020-06-06.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0017/soa-2021-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0017/soa-2022-06-04.pdf.br -1002810030,22,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0030/soa-2019-06-05.pdf.br,22,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0030/soa-2020-06-06.pdf.br,22,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0030/soa-2021-06-05.pdf.br,22,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0030/soa-2022-06-04.pdf.br -1002850020,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00285/0020/soa-2019-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00285/0020/soa-2020-06-06.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00285/0020/soa-2021-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00285/0020/soa-2022-06-04.pdf.br -1002860018,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00286/0018/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00286/0018/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00286/0018/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00286/0018/soa-2022-06-04.pdf.br -1002920023,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00292/0023/soa-2019-06-05.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00292/0023/soa-2020-06-06.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00292/0023/soa-2021-06-05.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00292/0023/soa-2022-06-04.pdf.br -1002970019,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00297/0019/soa-2019-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00297/0019/soa-2020-06-06.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00297/0019/soa-2021-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00297/0019/soa-2022-06-04.pdf.br -1003040021,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00304/0021/soa-2019-06-05.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00304/0021/soa-2020-06-06.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00304/0021/soa-2021-06-05.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00304/0021/soa-2022-06-04.pdf.br -1003060026,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00306/0026/soa-2019-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00306/0026/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00306/0026/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00306/0026/soa-2022-06-04.pdf.br -1003100023,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0023/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0023/soa-2020-06-06.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0023/soa-2021-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0023/soa-2022-06-04.pdf.br -1003100032,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0032/soa-2019-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0032/soa-2020-06-16.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0032/soa-2021-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0032/soa-2022-06-04.pdf.br -1003440072,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0072/soa-2019-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0072/soa-2020-06-06.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0072/soa-2021-06-05.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0072/soa-2022-06-04.pdf.br -1003440170,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0170/soa-2019-06-05.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0170/soa-2020-06-06.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0170/soa-2021-06-05.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0170/soa-2022-06-04.pdf.br -1003450011,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/0011/soa-2019-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/0011/soa-2020-06-06.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/0011/soa-2021-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/0011/soa-2022-06-04.pdf.br -1003457502,55,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/7502/soa-2019-06-05.pdf.br,55,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/7502/soa-2020-06-06.pdf.br,55,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/7502/soa-2021-06-05.pdf.br,55,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/7502/soa-2022-06-04.pdf.br -1003480024,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0024/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0024/soa-2020-06-06.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0024/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0024/soa-2022-06-04.pdf.br -1003480048,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0048/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0048/soa-2020-06-06.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0048/soa-2021-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0048/soa-2022-06-04.pdf.br -1003490016,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00349/0016/soa-2019-06-05.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00349/0016/soa-2020-06-06.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00349/0016/soa-2021-06-05.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00349/0016/soa-2022-06-04.pdf.br -1003500039,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0039/soa-2019-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0039/soa-2020-06-06.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0039/soa-2021-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0039/soa-2022-06-04.pdf.br -1003500056,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0056/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0056/soa-2020-06-06.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0056/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0056/soa-2022-06-04.pdf.br -1003530049,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00353/0049/soa-2019-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00353/0049/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00353/0049/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00353/0049/soa-2022-06-04.pdf.br -1003540028,NA,NA,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00354/0028/soa-2020-06-06.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00354/0028/soa-2021-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00354/0028/soa-2022-06-04.pdf.br -1003550049,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00355/0049/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00355/0049/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00355/0049/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00355/0049/soa-2022-06-04.pdf.br -1003720009,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0009/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0009/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0009/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0009/soa-2022-06-04.pdf.br -1003720031,28,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0031/soa-2019-06-05.pdf.br,33,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0031/soa-2020-06-06.pdf.br,33,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0031/soa-2021-06-05.pdf.br,33,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0031/soa-2022-06-04.pdf.br -1003720056,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0056/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0056/soa-2020-06-06.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0056/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0056/soa-2022-06-04.pdf.br -1003730051,38,https://nyc-doffer.s3.amazonaws.com/pdf/1/00373/0051/soa-2019-06-05.pdf.br,38,https://nyc-doffer.s3.amazonaws.com/pdf/1/00373/0051/soa-2020-06-06.pdf.br,38,https://nyc-doffer.s3.amazonaws.com/pdf/1/00373/0051/soa-2021-06-05.pdf.br,38,https://nyc-doffer.s3.amazonaws.com/pdf/1/00373/0051/soa-2022-06-04.pdf.br -1003740041,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00374/0041/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00374/0041/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00374/0041/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00374/0041/soa-2022-06-04.pdf.br -1003760011,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00376/0011/soa-2019-06-05.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00376/0011/soa-2020-06-06.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00376/0011/soa-2021-06-05.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00376/0011/soa-2022-06-04.pdf.br -1003790032,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00379/0032/soa-2019-06-05.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00379/0032/soa-2020-06-06.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00379/0032/soa-2021-06-05.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00379/0032/soa-2022-06-04.pdf.br -1003840017,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00384/0017/soa-2019-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00384/0017/soa-2020-06-06.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00384/0017/soa-2021-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00384/0017/soa-2022-06-04.pdf.br -1003850026,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00385/0026/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00385/0026/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00385/0026/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00385/0026/soa-2022-06-04.pdf.br -1003860001,NA,NA,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00386/0001/soa-2020-06-06.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00386/0001/soa-2021-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00386/0001/soa-2022-06-04.pdf.br -1003890007,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0007/soa-2019-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0007/soa-2020-06-06.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0007/soa-2021-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0007/soa-2022-06-04.pdf.br -1003890022,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0022/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0022/soa-2020-06-06.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0022/soa-2021-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0022/soa-2022-06-04.pdf.br -1003920027,45,https://nyc-doffer.s3.amazonaws.com/pdf/1/00392/0027/soa-2019-06-05.pdf.br,45,https://nyc-doffer.s3.amazonaws.com/pdf/1/00392/0027/soa-2020-06-16.pdf.br,45,https://nyc-doffer.s3.amazonaws.com/pdf/1/00392/0027/soa-2021-06-05.pdf.br,45,https://nyc-doffer.s3.amazonaws.com/pdf/1/00392/0027/soa-2022-06-04.pdf.br -1003930018,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0018/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0018/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0018/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0018/soa-2022-06-04.pdf.br -1003930035,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0035/soa-2019-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0035/soa-2020-06-06.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0035/soa-2021-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0035/soa-2022-06-04.pdf.br -1003940002,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0002/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0002/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0002/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0002/soa-2022-06-04.pdf.br -1003940057,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0057/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0057/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0057/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0057/soa-2022-06-04.pdf.br -1003960028,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00396/0028/soa-2019-06-05.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00396/0028/soa-2020-06-06.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00396/0028/soa-2021-06-05.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00396/0028/soa-2022-06-04.pdf.br -1003980025,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0025/soa-2019-06-05.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0025/soa-2020-06-06.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0025/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0025/soa-2022-06-04.pdf.br -1003980053,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0053/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0053/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0053/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0053/soa-2022-06-04.pdf.br -1004000010,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00400/0010/soa-2019-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00400/0010/soa-2020-06-06.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00400/0010/soa-2021-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00400/0010/soa-2022-06-04.pdf.br -1004010015,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0015/soa-2019-06-05.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0015/soa-2020-06-06.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0015/soa-2021-06-05.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0015/soa-2022-06-04.pdf.br -1004010028,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0028/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0028/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0028/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0028/soa-2022-06-04.pdf.br -1004020001,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0001/soa-2019-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0001/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0001/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0001/soa-2022-06-04.pdf.br -1004020028,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0028/soa-2019-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0028/soa-2020-06-06.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0028/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0028/soa-2022-06-04.pdf.br -1004020045,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0045/soa-2019-06-05.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0045/soa-2020-06-06.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0045/soa-2021-06-05.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0045/soa-2022-06-04.pdf.br -1004020055,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0055/soa-2019-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0055/soa-2020-06-06.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0055/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0055/soa-2022-06-04.pdf.br -1004040014,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0014/soa-2019-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0014/soa-2020-06-06.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0014/soa-2021-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0014/soa-2022-06-04.pdf.br -1004040037,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0037/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0037/soa-2020-06-06.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0037/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0037/soa-2022-06-04.pdf.br -1004050009,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00405/0009/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00405/0009/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00405/0009/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00405/0009/soa-2022-06-04.pdf.br -1004060001,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0001/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0001/soa-2020-06-06.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0001/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0001/soa-2022-06-04.pdf.br -1004060055,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0055/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0055/soa-2020-06-16.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0055/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0055/soa-2022-06-04.pdf.br -1004070005,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0005/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0005/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0005/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0005/soa-2022-06-04.pdf.br -1004070032,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0032/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0032/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0032/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0032/soa-2022-06-04.pdf.br -1004070042,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0042/soa-2019-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0042/soa-2020-06-16.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0042/soa-2021-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0042/soa-2022-06-04.pdf.br -1004080020,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00408/0020/soa-2019-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00408/0020/soa-2020-06-16.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00408/0020/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00408/0020/soa-2022-06-04.pdf.br -1004110008,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0008/soa-2019-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0008/soa-2020-06-06.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0008/soa-2021-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0008/soa-2022-06-04.pdf.br -1004110021,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0021/soa-2019-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0021/soa-2020-06-06.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0021/soa-2021-06-05.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0021/soa-2022-06-04.pdf.br -1004110034,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0034/soa-2019-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0034/soa-2020-06-06.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0034/soa-2021-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0034/soa-2022-06-04.pdf.br -1004120027,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00412/0027/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00412/0027/soa-2020-06-06.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00412/0027/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00412/0027/soa-2022-06-04.pdf.br +ucbbl,uc2018,pdfsoa2018,uc2019,pdfsoa2019,uc2020,pdfsoa2020,uc2021,pdfsoa2021,uc2022,pdfsoa2022 +1000297501,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00029/7501/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00029/7501/soa-2020-06-06.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00029/7501/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00029/7501/soa-2022-06-04.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00029/7501/soa-2023-06-03.pdf.br +1000780047,483,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/0047/soa-2019-06-05.pdf.br,483,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/0047/soa-2020-06-06.pdf.br,483,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/0047/soa-2021-06-05.pdf.br,483,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/0047/soa-2022-06-04.pdf.br,483,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/0047/soa-2023-06-03.pdf.br +1000787510,28,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/7510/soa-2019-06-05.pdf.br,28,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/7510/soa-2020-06-06.pdf.br,28,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/7510/soa-2021-06-05.pdf.br,28,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/7510/soa-2022-06-04.pdf.br,28,https://nyc-doffer.s3.amazonaws.com/pdf/1/00078/7510/soa-2023-06-03.pdf.br +1001350019,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00135/0019/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00135/0019/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00135/0019/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00135/0019/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00135/0019/soa-2023-06-03.pdf.br +1001477503,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7503/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7503/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7503/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7503/soa-2022-06-04.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7503/soa-2023-06-03.pdf.br +1001477509,NA,NA,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7509/soa-2020-06-06.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7509/soa-2021-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7509/soa-2022-06-04.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00147/7509/soa-2023-06-03.pdf.br +1001620013,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00162/0013/soa-2019-06-05.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00162/0013/soa-2020-06-06.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00162/0013/soa-2021-06-05.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00162/0013/soa-2022-06-04.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00162/0013/soa-2023-06-03.pdf.br +1001630024,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0024/soa-2019-06-05.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0024/soa-2020-06-06.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0024/soa-2021-06-05.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0024/soa-2022-06-04.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0024/soa-2023-06-03.pdf.br +1001630033,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0033/soa-2019-06-05.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0033/soa-2020-06-06.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0033/soa-2021-06-05.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0033/soa-2022-06-04.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00163/0033/soa-2023-06-03.pdf.br +1001640049,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0049/soa-2019-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0049/soa-2020-06-06.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0049/soa-2021-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0049/soa-2022-06-04.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0049/soa-2023-06-03.pdf.br +1001640066,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0066/soa-2019-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0066/soa-2020-06-06.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0066/soa-2021-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0066/soa-2022-06-04.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00164/0066/soa-2023-06-03.pdf.br +1001990011,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0011/soa-2019-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0011/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0011/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0011/soa-2022-06-04.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0011/soa-2023-06-03.pdf.br +1001990031,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0031/soa-2019-06-05.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0031/soa-2020-06-06.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0031/soa-2021-06-05.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0031/soa-2022-06-04.pdf.br,11,https://nyc-doffer.s3.amazonaws.com/pdf/1/00199/0031/soa-2023-06-03.pdf.br +1002000011,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0011/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0011/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0011/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0011/soa-2022-06-04.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0011/soa-2023-06-03.pdf.br +1002000028,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0028/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0028/soa-2020-06-06.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0028/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0028/soa-2022-06-04.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00200/0028/soa-2023-06-03.pdf.br +1002027501,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00202/7501/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00202/7501/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00202/7501/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00202/7501/soa-2022-06-04.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00202/7501/soa-2023-06-03.pdf.br +1002050023,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00205/0023/soa-2019-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00205/0023/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00205/0023/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00205/0023/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00205/0023/soa-2023-06-03.pdf.br +1002140026,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00214/0026/soa-2019-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00214/0026/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00214/0026/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00214/0026/soa-2022-06-04.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00214/0026/soa-2023-06-03.pdf.br +1002350005,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00235/0005/soa-2019-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00235/0005/soa-2020-06-06.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00235/0005/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00235/0005/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00235/0005/soa-2023-06-03.pdf.br +1002360026,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00236/0026/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00236/0026/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00236/0026/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00236/0026/soa-2022-06-04.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00236/0026/soa-2023-06-03.pdf.br +1002370011,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0011/soa-2019-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0011/soa-2020-06-06.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0011/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0011/soa-2022-06-04.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0011/soa-2023-06-03.pdf.br +1002370023,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0023/soa-2019-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0023/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0023/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0023/soa-2022-06-04.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0023/soa-2023-06-03.pdf.br +1002370034,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0034/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0034/soa-2020-06-06.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0034/soa-2021-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0034/soa-2022-06-04.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00237/0034/soa-2023-06-03.pdf.br +1002380014,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0014/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0014/soa-2020-06-06.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0014/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0014/soa-2022-06-04.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0014/soa-2023-06-03.pdf.br +1002380035,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0035/soa-2019-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0035/soa-2020-06-06.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0035/soa-2021-06-05.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0035/soa-2022-06-04.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00238/0035/soa-2023-06-03.pdf.br +1002710043,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0043/soa-2019-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0043/soa-2020-06-06.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0043/soa-2021-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0043/soa-2022-06-04.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0043/soa-2023-06-03.pdf.br +1002710053,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0053/soa-2019-06-05.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0053/soa-2020-06-06.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0053/soa-2021-06-05.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0053/soa-2022-06-04.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00271/0053/soa-2023-06-03.pdf.br +1002730024,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00273/0024/soa-2019-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00273/0024/soa-2020-06-06.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00273/0024/soa-2021-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00273/0024/soa-2022-06-04.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00273/0024/soa-2023-06-03.pdf.br +1002750027,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00275/0027/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00275/0027/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00275/0027/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00275/0027/soa-2022-06-04.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00275/0027/soa-2023-06-03.pdf.br +1002760010,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0010/soa-2019-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0010/soa-2020-06-06.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0010/soa-2021-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0010/soa-2022-06-04.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0010/soa-2023-06-03.pdf.br +1002760033,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0033/soa-2019-06-05.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0033/soa-2020-06-06.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0033/soa-2021-06-05.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0033/soa-2022-06-04.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00276/0033/soa-2023-06-03.pdf.br +1002770001,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0001/soa-2019-06-05.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0001/soa-2020-06-06.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0001/soa-2021-06-05.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0001/soa-2022-06-04.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0001/soa-2023-06-03.pdf.br +1002770029,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0029/soa-2019-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0029/soa-2020-06-06.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0029/soa-2021-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0029/soa-2022-06-04.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0029/soa-2023-06-03.pdf.br +1002770043,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0043/soa-2019-06-05.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0043/soa-2020-06-06.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0043/soa-2021-06-05.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0043/soa-2022-06-04.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0043/soa-2023-06-03.pdf.br +1002770054,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0054/soa-2019-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0054/soa-2020-06-06.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0054/soa-2021-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0054/soa-2022-06-04.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00277/0054/soa-2023-06-03.pdf.br +1002790029,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00279/0029/soa-2019-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00279/0029/soa-2020-06-06.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00279/0029/soa-2021-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00279/0029/soa-2022-06-04.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00279/0029/soa-2023-06-03.pdf.br +1002800003,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0003/soa-2019-06-05.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0003/soa-2020-06-06.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0003/soa-2021-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0003/soa-2022-06-04.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0003/soa-2023-06-03.pdf.br +1002800013,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0013/soa-2019-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0013/soa-2020-06-06.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0013/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0013/soa-2022-06-04.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00280/0013/soa-2023-06-03.pdf.br +1002810017,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0017/soa-2019-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0017/soa-2020-06-06.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0017/soa-2021-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0017/soa-2022-06-04.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0017/soa-2023-06-03.pdf.br +1002810030,22,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0030/soa-2019-06-05.pdf.br,22,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0030/soa-2020-06-06.pdf.br,22,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0030/soa-2021-06-05.pdf.br,22,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0030/soa-2022-06-04.pdf.br,22,https://nyc-doffer.s3.amazonaws.com/pdf/1/00281/0030/soa-2023-06-03.pdf.br +1002850020,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00285/0020/soa-2019-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00285/0020/soa-2020-06-06.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00285/0020/soa-2021-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00285/0020/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00285/0020/soa-2023-06-03.pdf.br +1002860018,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00286/0018/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00286/0018/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00286/0018/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00286/0018/soa-2022-06-04.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00286/0018/soa-2023-06-03.pdf.br +1002920023,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00292/0023/soa-2019-06-05.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00292/0023/soa-2020-06-06.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00292/0023/soa-2021-06-05.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00292/0023/soa-2022-06-04.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00292/0023/soa-2023-06-03.pdf.br +1002970019,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00297/0019/soa-2019-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00297/0019/soa-2020-06-06.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00297/0019/soa-2021-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00297/0019/soa-2022-06-04.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00297/0019/soa-2023-06-03.pdf.br +1003040021,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00304/0021/soa-2019-06-05.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00304/0021/soa-2020-06-06.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00304/0021/soa-2021-06-05.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00304/0021/soa-2022-06-04.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00304/0021/soa-2023-06-03.pdf.br +1003060026,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00306/0026/soa-2019-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00306/0026/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00306/0026/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00306/0026/soa-2022-06-04.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00306/0026/soa-2023-06-03.pdf.br +1003100023,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0023/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0023/soa-2020-06-06.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0023/soa-2021-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0023/soa-2022-06-04.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0023/soa-2023-06-03.pdf.br +1003100032,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0032/soa-2019-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0032/soa-2020-06-16.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0032/soa-2021-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0032/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00310/0032/soa-2023-06-03.pdf.br +1003440072,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0072/soa-2019-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0072/soa-2020-06-06.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0072/soa-2021-06-05.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0072/soa-2022-06-04.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0072/soa-2023-06-03.pdf.br +1003440170,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0170/soa-2019-06-05.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0170/soa-2020-06-06.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0170/soa-2021-06-05.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0170/soa-2022-06-04.pdf.br,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00344/0170/soa-2023-06-03.pdf.br +1003450011,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/0011/soa-2019-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/0011/soa-2020-06-06.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/0011/soa-2021-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/0011/soa-2022-06-04.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/0011/soa-2023-06-03.pdf.br +1003457502,55,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/7502/soa-2019-06-05.pdf.br,55,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/7502/soa-2020-06-06.pdf.br,55,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/7502/soa-2021-06-05.pdf.br,55,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/7502/soa-2022-06-04.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00345/7502/soa-2023-06-03.pdf.br +1003480024,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0024/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0024/soa-2020-06-06.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0024/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0024/soa-2022-06-04.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0024/soa-2023-06-03.pdf.br +1003480048,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0048/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0048/soa-2020-06-06.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0048/soa-2021-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0048/soa-2022-06-04.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00348/0048/soa-2023-06-03.pdf.br +1003490016,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00349/0016/soa-2019-06-05.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00349/0016/soa-2020-06-06.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00349/0016/soa-2021-06-05.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00349/0016/soa-2022-06-04.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00349/0016/soa-2023-06-03.pdf.br +1003500039,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0039/soa-2019-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0039/soa-2020-06-06.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0039/soa-2021-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0039/soa-2022-06-04.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0039/soa-2023-06-03.pdf.br +1003500056,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0056/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0056/soa-2020-06-06.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0056/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0056/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00350/0056/soa-2023-06-03.pdf.br +1003530049,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00353/0049/soa-2019-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00353/0049/soa-2020-06-06.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00353/0049/soa-2021-06-05.pdf.br,7,https://nyc-doffer.s3.amazonaws.com/pdf/1/00353/0049/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00353/0049/soa-2023-06-03.pdf.br +1003540028,NA,NA,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00354/0028/soa-2020-06-06.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00354/0028/soa-2021-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00354/0028/soa-2022-06-04.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00354/0028/soa-2023-06-03.pdf.br +1003550049,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00355/0049/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00355/0049/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00355/0049/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00355/0049/soa-2022-06-04.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00355/0049/soa-2023-06-03.pdf.br +1003720009,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0009/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0009/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0009/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0009/soa-2022-06-04.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0009/soa-2023-06-03.pdf.br +1003720031,28,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0031/soa-2019-06-05.pdf.br,33,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0031/soa-2020-06-06.pdf.br,33,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0031/soa-2021-06-05.pdf.br,33,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0031/soa-2022-06-04.pdf.br,33,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0031/soa-2023-06-03.pdf.br +1003720056,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0056/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0056/soa-2020-06-06.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0056/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0056/soa-2022-06-04.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00372/0056/soa-2023-06-03.pdf.br +1003730051,38,https://nyc-doffer.s3.amazonaws.com/pdf/1/00373/0051/soa-2019-06-05.pdf.br,38,https://nyc-doffer.s3.amazonaws.com/pdf/1/00373/0051/soa-2020-06-06.pdf.br,38,https://nyc-doffer.s3.amazonaws.com/pdf/1/00373/0051/soa-2021-06-05.pdf.br,38,https://nyc-doffer.s3.amazonaws.com/pdf/1/00373/0051/soa-2022-06-04.pdf.br,38,https://nyc-doffer.s3.amazonaws.com/pdf/1/00373/0051/soa-2023-06-03.pdf.br +1003740041,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00374/0041/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00374/0041/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00374/0041/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00374/0041/soa-2022-06-04.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00374/0041/soa-2023-06-03.pdf.br +1003760011,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00376/0011/soa-2019-06-05.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00376/0011/soa-2020-06-06.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00376/0011/soa-2021-06-05.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00376/0011/soa-2022-06-04.pdf.br,12,https://nyc-doffer.s3.amazonaws.com/pdf/1/00376/0011/soa-2023-06-03.pdf.br +1003790032,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00379/0032/soa-2019-06-05.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00379/0032/soa-2020-06-06.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00379/0032/soa-2021-06-05.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00379/0032/soa-2022-06-04.pdf.br,17,https://nyc-doffer.s3.amazonaws.com/pdf/1/00379/0032/soa-2023-06-03.pdf.br +1003840017,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00384/0017/soa-2019-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00384/0017/soa-2020-06-06.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00384/0017/soa-2021-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00384/0017/soa-2022-06-04.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00384/0017/soa-2023-06-03.pdf.br +1003850026,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00385/0026/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00385/0026/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00385/0026/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00385/0026/soa-2022-06-04.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00385/0026/soa-2023-06-03.pdf.br +1003860001,NA,NA,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00386/0001/soa-2020-06-06.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00386/0001/soa-2021-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00386/0001/soa-2022-06-04.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00386/0001/soa-2023-06-03.pdf.br +1003890007,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0007/soa-2019-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0007/soa-2020-06-06.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0007/soa-2021-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0007/soa-2022-06-04.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0007/soa-2023-06-03.pdf.br +1003890022,9,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0022/soa-2019-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0022/soa-2020-06-06.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0022/soa-2021-06-05.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0022/soa-2022-06-04.pdf.br,8,https://nyc-doffer.s3.amazonaws.com/pdf/1/00389/0022/soa-2023-06-03.pdf.br +1003920027,45,https://nyc-doffer.s3.amazonaws.com/pdf/1/00392/0027/soa-2019-06-05.pdf.br,45,https://nyc-doffer.s3.amazonaws.com/pdf/1/00392/0027/soa-2020-06-16.pdf.br,45,https://nyc-doffer.s3.amazonaws.com/pdf/1/00392/0027/soa-2021-06-05.pdf.br,45,https://nyc-doffer.s3.amazonaws.com/pdf/1/00392/0027/soa-2022-06-04.pdf.br,45,https://nyc-doffer.s3.amazonaws.com/pdf/1/00392/0027/soa-2023-06-03.pdf.br +1003930018,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0018/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0018/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0018/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0018/soa-2022-06-04.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0018/soa-2023-06-03.pdf.br +1003930035,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0035/soa-2019-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0035/soa-2020-06-06.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0035/soa-2021-06-05.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0035/soa-2022-06-04.pdf.br,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00393/0035/soa-2023-06-03.pdf.br +1003940002,3,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0002/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0002/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0002/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0002/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0002/soa-2023-06-03.pdf.br +1003940057,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0057/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0057/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0057/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0057/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00394/0057/soa-2023-06-03.pdf.br +1003960028,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00396/0028/soa-2019-06-05.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00396/0028/soa-2020-06-06.pdf.br,14,https://nyc-doffer.s3.amazonaws.com/pdf/1/00396/0028/soa-2021-06-05.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00396/0028/soa-2022-06-04.pdf.br,13,https://nyc-doffer.s3.amazonaws.com/pdf/1/00396/0028/soa-2023-06-03.pdf.br +1003980025,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0025/soa-2019-06-05.pdf.br,15,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0025/soa-2020-06-06.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0025/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0025/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0025/soa-2023-06-03.pdf.br +1003980053,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0053/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0053/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0053/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0053/soa-2022-06-04.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00398/0053/soa-2023-06-03.pdf.br +1004000010,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00400/0010/soa-2019-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00400/0010/soa-2020-06-06.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00400/0010/soa-2021-06-05.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00400/0010/soa-2022-06-04.pdf.br,16,https://nyc-doffer.s3.amazonaws.com/pdf/1/00400/0010/soa-2023-06-03.pdf.br +1004010015,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0015/soa-2019-06-05.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0015/soa-2020-06-06.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0015/soa-2021-06-05.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0015/soa-2022-06-04.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0015/soa-2023-06-03.pdf.br +1004010028,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0028/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0028/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0028/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0028/soa-2022-06-04.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00401/0028/soa-2023-06-03.pdf.br +1004020001,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0001/soa-2019-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0001/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0001/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0001/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0001/soa-2023-06-03.pdf.br +1004020028,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0028/soa-2019-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0028/soa-2020-06-06.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0028/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0028/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0028/soa-2023-06-03.pdf.br +1004020045,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0045/soa-2019-06-05.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0045/soa-2020-06-06.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0045/soa-2021-06-05.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0045/soa-2022-06-04.pdf.br,21,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0045/soa-2023-06-03.pdf.br +1004020055,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0055/soa-2019-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0055/soa-2020-06-06.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0055/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0055/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00402/0055/soa-2023-06-03.pdf.br +1004040014,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0014/soa-2019-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0014/soa-2020-06-06.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0014/soa-2021-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0014/soa-2022-06-04.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0014/soa-2023-06-03.pdf.br +1004040037,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0037/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0037/soa-2020-06-06.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0037/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0037/soa-2022-06-04.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00404/0037/soa-2023-06-03.pdf.br +1004050009,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00405/0009/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00405/0009/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00405/0009/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00405/0009/soa-2022-06-04.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00405/0009/soa-2023-06-03.pdf.br +1004060001,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0001/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0001/soa-2020-06-06.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0001/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0001/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0001/soa-2023-06-03.pdf.br +1004060055,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0055/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0055/soa-2020-06-16.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0055/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0055/soa-2022-06-04.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00406/0055/soa-2023-06-03.pdf.br +1004070005,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0005/soa-2019-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0005/soa-2020-06-06.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0005/soa-2021-06-05.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0005/soa-2022-06-04.pdf.br,1,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0005/soa-2023-06-03.pdf.br +1004070032,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0032/soa-2019-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0032/soa-2020-06-06.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0032/soa-2021-06-05.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0032/soa-2022-06-04.pdf.br,4,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0032/soa-2023-06-03.pdf.br +1004070042,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0042/soa-2019-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0042/soa-2020-06-16.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0042/soa-2021-06-05.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0042/soa-2022-06-04.pdf.br,10,https://nyc-doffer.s3.amazonaws.com/pdf/1/00407/0042/soa-2023-06-03.pdf.br +1004080020,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00408/0020/soa-2019-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00408/0020/soa-2020-06-16.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00408/0020/soa-2021-06-05.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00408/0020/soa-2022-06-04.pdf.br,NA,https://nyc-doffer.s3.amazonaws.com/pdf/1/00408/0020/soa-2023-06-03.pdf.br +1004110008,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0008/soa-2019-06-05.pdf.br,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0008/soa-2020-06-06.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0008/soa-2021-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0008/soa-2022-06-04.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0008/soa-2023-06-03.pdf.br +1004110021,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0021/soa-2019-06-05.pdf.br,20,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0021/soa-2020-06-06.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0021/soa-2021-06-05.pdf.br,19,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0021/soa-2022-06-04.pdf.br,18,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0021/soa-2023-06-03.pdf.br +1004110034,6,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0034/soa-2019-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0034/soa-2020-06-06.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0034/soa-2021-06-05.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0034/soa-2022-06-04.pdf.br,5,https://nyc-doffer.s3.amazonaws.com/pdf/1/00411/0034/soa-2023-06-03.pdf.br +1004120027,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00412/0027/soa-2019-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00412/0027/soa-2020-06-06.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00412/0027/soa-2021-06-05.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00412/0027/soa-2022-06-04.pdf.br,2,https://nyc-doffer.s3.amazonaws.com/pdf/1/00412/0027/soa-2023-06-03.pdf.br diff --git a/tests/data/taxbills_joined.csv b/tests/data/taxbills_joined.csv new file mode 100644 index 000000000..6a04bed27 --- /dev/null +++ b/tests/data/taxbills_joined.csv @@ -0,0 +1,101 @@ +borough,ucbbl,2007uc,2007est,2007dhcr,2007abat,2008uc,2008est,2008dhcr,2008abat,2009uc,2009est,2009dhcr,2009abat,2010uc,2010est,2010dhcr,2010abat,2011uc,2011est,2011dhcr,2011abat,2012uc,2012est,2012dhcr,2012abat,2013uc,2013est,2013dhcr,2013abat,2014uc,2014est,2014dhcr,2014abat,2015uc,2015est,2015dhcr,2015abat,2016uc,2016est,2016dhcr,2016abat,2017uc,2017est,2017dhcr,2017abat,cd,ct2010,cb2010,council,zipcode,address,ownername,numbldgs,numfloors,unitsres,unitstotal,yearbuilt,condono,lon,lat +BK,3032920018,6,Y,,,6,N,,,6,N,Y,,6,N,,,6,N,Y,,6,N,Y,,6,N,Y,scrie,6,N,,scrie,6,N,,,6,N,,,6,N,,scrie,304,443,1001,37,11237,478 HARMAN STREET,"RUFFO, MARIA",1,3,6,6,1931,0,-73.9142,40.7042 +MN,1007530077,17,Y,,,17,N,,,17,N,Y,,17,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,104,97,4000,3,10001,366 WEST 30 STREET,366 WEST 30TH STREET,1,3,18,18,1900,0,-73.9979,40.7505 +BK,3066980079,4,Y,,,4,N,,,4,N,Y,star,4,N,,star,4,N,Y,star,4,N,Y,star,4,N,Y,star,4,N,,star,4,N,,star,4,N,,star,4,N,,star,314,530,1000,45,11230,821 EAST 14 STREET,"NG, CHUNG LAI",1,3,6,6,1931,0,-73.9628,40.6293 +MN,1011220007,4,Y,,,4,N,,,4,N,Y,,4,N,,,4,N,Y,,3,N,Y,,3,N,Y,,3,N,,,3,N,,,2,N,,,2,N,,,107,153,5000,6,10023,55 WEST 69 STREET,NATALINA REALTY CORP,1,4,10,10,1910,0,-73.9794,40.7754 +BK,3050800013,47,N,,,47,N,,,47,N,Y,"j51,scrie",47,N,,"drie,j51,scrie",47,N,Y,"drie,j51,scrie",47,N,Y,"drie,j51,scrie",47,N,Y,"drie,j51,scrie",47,N,,"drie,j51,scrie",45,N,,j51,45,N,,,45,N,,"drie,scrie",314,508.01,1000,40,11226,446 OCEAN AVENUE,PROSPECT 446 LLC,3,4,46,46,1914,0,-73.9617,40.6517 +BK,3050720025,64,Y,,,64,N,,,64,N,Y,scrie,64,N,,scrie,64,N,Y,scrie,64,N,Y,"drie,scrie",64,N,Y,"drie,scrie",63,N,,"drie,scrie",63,N,,,63,N,,,63,N,,"drie,scrie",314,506,4000,40,11218,50 WESTMINSTER ROAD,PARK 50 WEST PROPERTI,1,6,65,65,1940,0,-73.9688,40.6479 +MN,1020907502,56,Y,,,56,Y,,,56,N,,,,N,,,38,N,,,38,N,Y,,38,N,Y,,36,N,,,36,N,,,34,N,,,34,N,,,109,229,5004,7,10031,668 RIVERSIDE DRIVE,THE 668 RIVERSIDE CON,1,6,64,64,1907,2015,-73.9524,40.8261 +MN,1018700037,14,Y,,,14,N,,,12,N,Y,"j51,scrie",12,N,,"j51,scrie",13,N,Y,"j51,scrie",15,N,Y,"j51,scrie",16,N,Y,"j51,scrie",23,N,,"j51,scrie",23,N,,j51,23,N,,j51,23,N,,"drie,j51,scrie",107,187,6001,7,10025,206 WEST 99 STREET,200-230 W 99 REALTY L,1,6,26,26,1925,0,-73.9696,40.796 +BK,3005240010,10,Y,,,10,N,,,10,N,Y,,2,N,,j51,10,N,Y,j51,10,N,Y,j51,10,N,Y,j51,10,N,,j51,10,N,,j51,10,N,,j51,10,N,,j51,306,59,1004,38,11231,9 DWIGHT STREET,RED HOOK GARDENS HOUS,5,3,10,10,1972,0,-74.0062,40.6782 +BK,3051540047,96,Y,,,96,N,,,96,N,Y,"drie,j51,scrie",96,N,,"j51,scrie",96,N,Y,"j51,scrie",96,N,Y,"j51,scrie",96,N,Y,"drie,j51,scrie",96,N,,"drie,j51",96,N,,j51,96,N,,j51,96,N,,"drie,j51,scrie",314,526,1001,40,11218,415 STRATFORD ROAD,THE STRATFORD LLC,1,6,96,96,1963,0,-73.9674,40.6385 +QN,4006540048,13,Y,,,13,N,,,14,N,Y,,14,N,,,14,N,Y,,14,N,Y,,,N,,,,N,,,14,N,,,13,N,,,14,N,,,401,143,2000,22,11103,38-08 ASTORIA BOULEVARD S,38-08 ASTORIA BLVD RL,1,4,14,16,1924,0,-73.9118,40.7688 +BK,3023280002,7,N,,,6,N,,,4,N,Y,,4,N,,,4,N,Y,,,N,,,4,N,Y,,,N,,,,N,,,,N,,,,N,,,301,553,1001,33,11211,195 BEDFORD AVENUE,"FLISKI, MARIUS",1,5,16,18,1910,0,-73.9579,40.7173 +BX,2024550014,48,N,,,49,N,,,37,N,Y,drie,48,N,,drie,48,N,Y,drie,48,N,Y,drie,47,N,Y,drie,44,N,,drie,,N,,,40,N,,,40,N,,drie,204,183.02,1000,16,10456,974 SHERIDAN AVENUE,NYC CAPITAL VALUE FUN,1,6,48,48,1927,0,-73.9194,40.8289 +BK,3002970019,17,Y,,,17,N,,,16,N,Y,,13,N,,,13,N,Y,,9,N,Y,,9,N,Y,,8,N,,,6,N,,,5,N,,,5,N,,,306,45,2000,39,11201,182 AMITY STREET,AMITY COURT INC,4,4,48,48,1900,0,-73.9938,40.6883 +MN,1000397501,5,N,,,5,N,,,5,N,Y,,5,N,,,5,N,,,5,N,Y,,5,N,Y,,5,N,,,5,N,,,5,N,,,5,N,,,101,7,1017,1,10005,164 PEARL STREET,THE SEAPORT SO CONDO,1,12,121,122,1956,122,-74.0072,40.7058 +QN,4019970053,6,Y,,,6,N,,,6,N,Y,star,6,Y,,star,6,N,Y,star,6,N,Y,star,6,N,Y,star,6,N,,star,6,N,,star,6,N,,"estar,sche",6,N,,estar,404,401,3000,21,11368,108-37 42 AVENUE,"JIMENEZ, EFRAIN E",1,3,6,6,1931,0,-73.8567,40.75 +MN,1017750006,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,254,N,,,255,N,,,255,N,,,255,N,,,255,N,,,111,242,2002,9,10035,107 EAST 126 STREET,1775 TP4 HOUSING DEVE,1,11,255,255,1980,0,-73.9372,40.8057 +BX,2032280097,42,N,,,42,N,,,42,N,Y,"j51,scrie",43,N,,"j51,scrie",43,N,Y,"j51,scrie",43,N,Y,"j51,scrie",43,N,Y,"j51,scrie",43,N,,"j51,scrie",43,N,,j51,43,Y,,j51,43,N,,"j51,scrie",205,245.02,3001,14,10453,1945 LORING PLACE SOUTH,ANDREW ASSOCIATES LL,1,6,42,42,1927,0,-73.9144,40.8553 +BK,3001920030,8,Y,,,8,N,,,8,N,Y,,8,N,,,8,N,Y,,8,N,Y,,8,N,Y,scrie,7,N,,scrie,6,N,,,5,N,,,5,N,,scrie,302,39,3001,33,11217,542 PACIFIC STREET,542 PACIFIC STREET LL,1,3,8,8,1920,0,-73.9794,40.6838 +BK,3071200017,6,Y,,,6,N,,,6,N,Y,,6,N,,,6,N,Y,,6,N,Y,,6,N,Y,,6,N,,,6,N,,,6,N,,,6,N,,,315,398,2000,47,11223,2126 WEST 6 STREET,"2126 ASSOCIATES, LLC",1,3,6,6,1930,0,-73.9777,40.5958 +BX,2027210041,18,Y,,,18,N,,,18,N,Y,scrie,18,N,,scrie,18,N,Y,scrie,18,N,Y,,18,N,Y,,19,N,,,18,N,,,18,N,,,18,N,,,202,89,2002,17,10459,1023 LONGWOOD AVENUE,HOE-LONGWOOD HOUSING,1,5,18,20,1931,0,-73.8963,40.8167 +BX,2037670066,33,N,,,33,N,,,33,N,Y,,33,N,,,33,N,Y,scrie,33,N,Y,scrie,33,N,Y,scrie,33,N,,scrie,33,N,,,33,N,,,33,N,,scrie,209,72,2000,18,10472,1259 WHITE PLAINS ROAD,MALESIA REALTY CORP,1,5,33,33,1927,0,-73.8628,40.832 +BX,2030520005,27,Y,,,27,N,,,27,N,Y,scrie,27,N,,scrie,27,N,Y,scrie,27,N,Y,scrie,27,N,Y,scrie,27,N,,,27,N,,,27,N,,,27,N,,scrie,206,385,3005,15,10458,2300 BATHGATE AVENUE,NUGARESE INC,1,5,27,27,1928,0,-73.8912,40.8548 +MN,1019580038,8,N,,,6,N,,,4,N,Y,"j51,scrie",4,N,,"j51,scrie",4,N,Y,"j51,scrie",4,N,Y,"j51,scrie",4,N,Y,"j51,scrie",4,N,,"j51,scrie",4,N,,j51,4,N,,j51,4,N,,"j51,scrie",110,215,2001,9,10027,456 ST NICHOLAS AVENUE,"SHEMRON PROPERTIES, L",1,5,10,10,1901,0,-73.9484,40.8155 +QN,4030850002,63,Y,,,63,N,,,63,N,Y,"drie,scrie",62,N,,"drie,scrie",60,N,Y,"drie,scrie",60,N,Y,"drie,scrie",60,N,Y,"drie,scrie",61,N,,"drie,scrie",59,N,,,58,N,,,58,N,,"drie,scrie",406,697.01,1001,29,11374,64-45 BOOTH STREET,BOOTH 45 LLC,1,6,66,66,1939,0,-73.8607,40.728 +QN,4007340009,6,Y,,,6,N,,,6,N,Y,,6,N,,,,N,,,6,N,Y,,,N,,,,N,,,6,N,,,6,N,,,6,N,,,401,161,2001,26,11103,32-73 48 STREET,"ROMANO, NICHOLAS A",1,3,6,6,1928,0,-73.9138,40.7541 +MN,1016550027,6,Y,,,6,N,,,2,N,Y,,2,N,,,1,N,Y,,1,N,Y,,1,N,Y,,1,N,,,,N,,,,N,,,1,N,,,111,170,2000,8,10029,2059 2 AVENUE,THOMAS H YOUNG,1,4,6,7,1920,0,-73.9429,40.7905 +MN,1011490026,2,Y,,,2,N,,,2,N,Y,j51,2,N,,j51,2,N,Y,,2,N,Y,,2,N,Y,,2,N,,,2,N,,,2,N,,,2,N,,,107,161,1000,6,10024,115 WEST 77 STREET,PETER MAGNONE,1,4,10,10,1900,0,-73.977,40.7811 +MN,1016870019,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,10,N,,,111,188,2001,8,10029,337 EAST 115 STREET,FELIPE MARRERO,2,5,10,10,1900,0,-73.9365,40.7958 +,3024717501,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,10,N,,,,,,,,,,,,,,,,, +MN,1019040025,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,10,N,,,10,N,,,9,N,,,110,220,2000,9,10026,109 WEST 119 STREET,SUZY M MUZAC,1,3,10,10,1910,0,-73.9489,40.8045 +BK,3014680035,16,Y,,,16,N,,,16,N,Y,j51,16,N,,j51,16,N,Y,j51,16,N,Y,j51,16,N,Y,j51,16,N,,"420c,j51",16,N,,420c,16,N,,420c,16,N,,420c,316,363,3003,41,11233,1566 EASTERN PARKWAY,CITYWIDE PRESERVATION,1,4,19,19,1910,0,-73.9161,40.6708 +BK,3027040041,,N,,,,N,,,,N,,,,N,,,8,N,Y,,8,N,Y,,8,N,Y,,8,N,,,8,N,,,5,N,,,5,N,,,301,591,3000,33,11222,81 MONITOR STREET,"HANSEN, RITA L",1,4,8,8,1928,0,-73.9423,40.7222 +BX,2032090060,52,Y,,,52,N,,,52,N,Y,"j51,scrie",52,N,,"j51,scrie",53,N,Y,"j51,scrie",53,N,Y,"j51,scrie",53,N,Y,"drie,j51,scrie",53,N,,"drie,j51",53,N,,j51,53,N,,j51,53,N,,"j51,scrie",207,253,2001,14,10468,2305 GRAND AVENUE,"2305 GRANDCO, L.L.C.",1,5,52,53,1923,0,-73.9053,40.8602 +BK,3003960013,5,Y,,,5,N,,,5,N,Y,,,N,,,,N,,,5,N,Y,,5,N,Y,scrie,5,Y,,scrie,,N,,,,N,,,,N,,scrie,306,69,3000,33,11201,280 WARREN STREET,PEZZOLLA JOSEPH,2,4,8,8,1900,0,-73.9935,40.6861 +QN,4006100044,6,Y,,,6,N,,,6,N,Y,,6,N,,,6,N,Y,,6,N,Y,,6,N,Y,,6,N,,,6,N,,,6,N,,,6,N,,,401,57,1001,26,11106,34-38 34 STREET,"THOMOPOULOS, EKATERIN",2,3,6,6,1923,0,-73.9259,40.7577 +MN,1007640069,5,Y,,,5,N,,,5,N,Y,"drie,scrie",5,N,,"drie,scrie",5,N,Y,"drie,scrie",5,N,Y,drie,3,N,Y,drie,3,N,,drie,3,N,,,3,N,,,3,N,,drie,104,81,6000,3,10011,258 WEST 15 STREET,ROSAR REALTY CORP C/O,1,6,21,23,1901,0,-74.0017,40.74 +MN,1015160027,15,Y,,,15,N,,,15,N,Y,scrie,15,N,,scrie,15,N,Y,scrie,15,N,Y,scrie,15,N,Y,scrie,15,N,,,14,N,,,14,N,,,14,N,,scrie,108,148.02,2001,5,10128,167 EAST 87 STREET,LGF ENTERPRISES,1,5,18,20,1910,0,-73.9542,40.7801 +QN,4034320006,6,Y,,,6,N,,,6,N,Y,,6,N,,,6,N,Y,,6,N,Y,,6,N,Y,,6,N,,,6,N,,,6,N,,,6,N,,,405,545,1002,34,11385,17-08 HIMROD STREET,PASSALAQUA GASPARE,1,3,6,6,1930,0,, +BX,2032850015,36,Y,,,36,N,,,35,N,Y,scrie,35,N,,"j51,scrie",35,N,Y,scrie,35,N,Y,scrie,35,N,Y,scrie,35,N,,scrie,35,N,,,35,N,,j51,35,N,,"j51,scrie",207,415,5000,11,10458,2970 MARION AVENUE,"2970 MARION AVE,",1,6,36,36,1936,0,-73.8837,40.8691 +BX,2033180119,24,N,,,24,N,,,24,N,Y,,24,N,,,24,N,Y,,24,N,Y,,24,N,Y,,24,N,,,24,N,,,24,N,,,24,N,,,207,403.03,2000,14,10468,18 EAST 198 STREET,RAQUEL REALTY LLC,1,6,25,25,1929,0,-73.8927,40.8709 +BK,3047550070,6,N,,,6,Y,,,,Y,,scrie,,N,,scrie,,N,,,,N,,,,N,,,,N,,,6,N,,,,N,,,,N,,,317,928,1001,42,11236,648 EAST 96 STREET,TOOLE OSCAR,2,3,6,6,1940,0,-73.9127,40.6528 +BK,3033630029,6,N,,,6,N,,,6,N,Y,,6,N,,,,N,,scrie,6,N,Y,,6,N,Y,scrie,6,N,,scrie,6,N,,,,N,,,,N,,scrie,304,439,2003,37,11237,1385 MADISON STREET,TAI S KANG,1,3,6,6,1931,0,-73.911,40.6976 +BK,3051730045,77,Y,,,77,N,,,77,N,Y,"j51,scrie",77,N,,"j51,scrie",77,N,Y,"j51,scrie",77,N,Y,"j51,scrie",76,N,Y,"j51,scrie",76,N,,"j51,scrie",76,N,,j51,76,N,,j51,76,N,,"j51,scrie",317,826,3005,45,11226,251 EAST 29 STREET,251 E 29TH ST LLC,1,6,76,76,1964,0,-73.9495,40.6438 +MN,1006220024,9,Y,,,9,N,,,8,N,Y,,8,N,,,6,N,Y,,6,N,Y,,6,N,Y,,6,N,,,6,N,,,6,N,,,6,N,,,102,73,1000,3,10014,93 PERRY STREET,GREEN TOMATO LLC,2,3,16,16,1900,0,-74.0053,40.7355 +BX,2023710001,21,N,,,21,Y,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,203,185,1000,16,10456,1088 WASHINGTON AVENUE,167TH STREET HOUSINGD,1,6,21,24,1918,0,-73.9083,40.8283 +BK,3011630080,,N,,,,N,,,,N,,,,N,,,3,N,Y,,3,Y,Y,,,N,,,,N,,,,N,,,,N,,,,N,,,308,305,4001,35,11238,585 PARK PLACE,ZT 585 PARK PL LLC,1,3,6,6,1931,0,-73.9585,40.6748 +BX,2031450032,16,N,,,16,N,,,16,N,Y,j51,16,N,,j51,16,N,Y,j51,16,N,Y,j51,16,N,Y,j51,16,N,,j51,16,N,,j51,16,N,,j51,16,N,,j51,205,383.01,2001,15,10457,2259 TIEBOUT AVENUE,UNITED NEIGHBORS HOUS,1,4,16,16,1925,0,-73.898,40.8559 +MN,1020510091,20,N,,,20,N,,,20,N,Y,,19,N,,,20,N,Y,,19,N,Y,,20,N,Y,,20,N,,,19,N,,,19,N,,,19,N,,,109,227,3001,9,10030,149 EDGECOMBE AVENUE,145-153 EDGECOMBE HOL,1,5,20,20,1910,0,-73.945,40.8218 +QN,4006590068,9,Y,,,9,Y,,,9,Y,,421a,9,Y,,421a,9,Y,,421a,9,N,Y,421a,9,N,Y,421a,9,N,,421a,9,N,,421a,9,N,,421a,9,N,,421a,401,63,4001,22,11103,30-52 38 STREET,"MK REALTY HOLDING, LL",1,5,9,9,2008,0,-73.9171,40.7631 +MN,1004600040,8,N,,,8,N,,,8,N,Y,,7,N,,,6,N,Y,scrie,5,N,Y,,5,N,Y,scrie,5,N,,,,N,,,5,N,,,5,N,,,103,38,3000,2,10003,73 2 AVENUE,73 SECOND AVENUE REA,1,5,8,10,1900,0,-73.9895,40.7265 +MN,1004857502,,N,,,,N,,,,N,,,1,N,,,1,N,,,1,N,Y,,,N,,,,N,,,1,N,,,1,N,,,1,N,,,102,49,1008,1,10012,60 GREENE STREET,,1,5,5,7,1873,1112,-74.0009,40.7228 +MN,1019770021,30,Y,,,30,N,,,30,N,Y,"drie,scrie",29,N,,"drie,scrie",28,N,Y,"drie,scrie",26,N,Y,"drie,scrie",21,N,Y,"drie,scrie",21,N,,"drie,scrie",17,N,,,13,N,,,13,N,,"drie,scrie",109,211,7000,7,10027,515 WEST 122 STREET,WEST 122 STREET LLC,1,6,32,32,1907,0,-73.9592,40.8113 +MN,1003500033,17,Y,,,17,N,,,17,N,Y,scrie,16,N,,scrie,13,N,Y,scrie,13,N,Y,scrie,13,N,Y,scrie,12,N,,,11,N,,,11,N,,,11,N,,,103,30.01,3000,2,10002,162 STANTON STREET,PSA LESAGE L L C,1,5,20,20,1920,0,-73.9848,40.7205 +BX,2026760067,11,N,,,11,N,,,11,N,Y,scrie,11,N,,j51,11,N,Y,j51,11,N,Y,j51,11,N,Y,j51,11,N,,j51,11,N,,j51,11,N,,j51,11,N,,j51,201,79,1000,17,10455,787 PROSPECT AVENUE,787 PROSPECT REALTY,1,5,11,11,1903,0,-73.9025,40.8185 +,1009260041,30,Y,,,30,Y,,,30,N,Y,j51,30,Y,,"j51,scrie",30,N,Y,"j51,scrie",30,N,Y,"j51,scrie",30,Y,Y,j51,,N,,,,N,,,,N,,,,N,,,,,,,,,,,,,,,,, +BK,3018240056,5,N,,,6,N,,,6,N,Y,j51,6,N,,j51,6,N,Y,j51,6,N,Y,j51,6,N,Y,j51,6,N,,j51,6,N,,j51,6,N,,j51,6,N,,,303,267,1001,36,11216,401 PUTNAM AVENUE,EVERETT D JENNINGS AP,1,3,6,6,1931,0,-73.9452,40.6848 +QN,4034720058,6,Y,,,6,N,,,6,N,Y,,6,N,,,6,N,Y,,6,N,Y,,6,N,Y,,6,N,,,6,N,,,6,N,,,6,N,,,405,551,4001,34,11385,1861 CORNELIA STREET,ZDZISLAW TEREPKA,1,3,6,6,1930,0,-73.9037,40.7024 +BX,2024560036,15,Y,,,15,N,,,15,N,Y,j51,15,N,,j51,15,N,Y,"j51,scrie",15,N,Y,"j51,scrie",15,N,Y,"j51,scrie",15,N,,"j51,scrie",15,N,,j51,15,N,,j51,15,N,,"j51,scrie",204,181.02,2000,16,10456,1056 SHERIDAN AVENUE,1056 SHERIDAN AVE. LL,1,5,15,15,1918,0,-73.9184,40.8308 +BX,2028270060,62,Y,,,62,N,,,62,N,Y,scrie,62,N,,"j51,scrie",62,N,Y,"j51,scrie",62,N,Y,j51,62,N,Y,j51,62,N,,"j51,scrie",62,N,,j51,62,N,,j51,62,N,,"j51,scrie",205,233.01,4000,14,10453,57 MT HOPE PLACE,MT. HOPE PLACE PRPRTS,1,6,62,62,1941,0,-73.9088,40.8492 +BK,3012820018,8,Y,,,8,N,,,8,N,Y,j51,8,N,,j51,8,N,Y,j51,8,N,Y,j51,8,N,Y,j51,8,N,,j51,8,N,,j51,8,N,,j51,8,N,,j51,309,321,2000,35,11225,1146 PRESIDENT STREET,EMPIRE HOLDINGS LP,1,4,8,8,1929,0,-73.9526,40.6679 +MN,1022370045,30,Y,,,30,N,,,31,N,Y,scrie,31,N,,j51,31,N,Y,"j51,scrie",31,N,Y,j51,31,N,Y,j51,31,N,,j51,31,N,,j51,31,N,,j51,31,N,,j51,112,295,2000,10,10034,678 ACADEMY STREET,678 ACADEMY STREET LL,1,5,31,31,1930,0,-73.9258,40.8668 +BX,2024030035,23,Y,,,23,N,,,23,N,Y,,23,N,,,23,N,Y,,23,N,Y,,23,N,Y,scrie,23,N,,scrie,23,N,,,23,N,,,23,N,,scrie,201,69,2004,17,10455,747 MELROSE AVENUE,357 E 150TH ST HDFC,1,6,24,26,1931,0,-73.9157,40.8211 +BK,3052910010,,N,,,,N,,,,N,,,6,N,,drie,,N,,,,N,,scrie,,N,,scrie,,N,,scrie,,N,,,,N,,,,N,,,312,226,2001,39,11218,1153 38 STREET,1153 TOV CORP,1,3,6,6,1931,0,-73.9884,40.6431 +BK,3018060053,16,Y,,,16,N,,,16,N,Y,,16,N,,,,N,,,16,N,Y,,16,N,Y,,16,N,,,16,N,,,16,N,,,16,N,,,303,279,4001,36,11221,495 QUINCY STREET,495 QUINCY LLC,1,4,16,16,1916,0,-73.9399,40.6884 +MN,1008077501,441,Y,,,441,N,,,458,N,Y,,458,N,,,458,N,,,458,N,Y,,458,N,Y,,458,N,,,458,N,,,458,N,,,458,N,,,105,101,1007,3,10001,125 WEST 31 STREET,125 WEST 31ST STREET,1,59,458,461,2005,1641,-73.9901,40.7487 +MN,1021610040,88,Y,,,88,N,,,88,N,Y,"drie,j51,scrie",88,N,,"drie,j51,scrie",88,N,Y,"drie,j51,scrie",88,N,Y,"drie,j51,scrie",88,Y,Y,"drie,j51,scrie",89,N,,"drie,j51,scrie",90,N,,j51,86,N,,,86,N,,"drie,scrie",112,277,4000,10,10040,560 AUDUBON AVENUE,560-568 AUDUBON REAL,1,5,93,93,1926,0,-73.9271,40.8566 +QN,4008520042,,N,,,,N,,,,N,,,6,N,,,6,N,Y,scrie,6,Y,Y,scrie,6,N,Y,scrie,6,N,,,6,N,,,6,N,,,4,N,,,401,95,1000,22,11102,24-20 27 STREET,"HAHAMBIS, ANDREW T",1,3,6,6,1931,0,-73.9185,40.7737 +BK,3003320004,4,Y,,,4,N,,,4,N,Y,,4,N,,,3,N,Y,,2,N,Y,,2,N,Y,,2,N,,,2,N,,,2,N,,,2,N,,,306,67,4000,39,11231,507 HENRY STREET,507 HENRY LLC,1,4,8,8,1920,0,-73.9991,40.6843 +MN,1002060013,8,Y,,,8,N,,,8,N,Y,,8,N,,,8,N,Y,,8,N,Y,,8,N,Y,,8,N,,,8,N,,,8,N,,,8,N,,,102,41,5004,1,10013,188 HESTER STREET,LORBERN REALTY CORP,2,4,16,17,1900,0,-73.9984,40.7181 +MN,1012010052,8,Y,,,8,N,,,6,N,Y,,4,N,,,4,N,Y,,4,N,Y,,3,N,Y,,3,N,,,3,N,,,3,N,,,3,N,,,107,173,6000,6,10024,44 WEST 88 STREET,FILOMENA GUGLIELMO,1,4,10,10,1900,0,-73.9702,40.7871 +BK,3023070038,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,78,N,,,78,N,,,78,N,,421a,301,519,1006,33,11211,237 NORTH 9 STREET,FPG 237-263 NORTH 9TH,1,6,45,45,2013,0,-73.9536,40.7174 +MN,1022280007,40,N,,,41,N,,,41,N,Y,"drie,scrie",39,N,,"drie,j51,scrie",39,N,Y,"drie,j51,scrie",39,N,Y,"drie,j51,scrie",41,N,Y,"drie,j51,scrie",41,N,,"drie,j51,scrie",41,N,,j51,41,N,,,41,N,,"drie,scrie",112,293,1001,10,10034,170 VERMILYEA AVENUE,VERMILYEA VENTURES II,1,5,40,40,1915,0,-73.919,40.8676 +QN,4031560114,13,Y,,,13,N,,,13,N,Y,"coco,drie,estar,j51,sche,scrie,star",12,N,,"coco,drie,estar,j51,sche,scrie,star",10,N,Y,"coco,drie,estar,j51,sche,scrie,star",10,N,Y,"coco,drie,estar,j51,sche,scrie,star",9,N,Y,"coco,drie,estar,j51,sche,scrie,star",9,N,,"coco,drie,estar,j51,sche,scrie,star",9,N,,"coco,estar,j51,sche,star",8,N,,"coco,estar,j51,sche,star",7,N,,"coco,estar,j51,scrie,star",406,713.06,2002,29,11374,66-20 WETHEROLE STREET,BEVERLY APARTMENT COR,1,6,75,75,1948,0,-73.8567,40.7252 +BK,3002150008,13,Y,,,13,N,,,10,N,Y,,8,N,,,8,N,Y,,8,N,Y,,8,N,Y,,7,N,,,6,N,,,5,N,,,5,N,,,302,1,1013,33,11201,32 MIDDAGH STREET,HARRIET FREDERICK,1,4,16,16,1900,0,-73.9938,40.7005 +BK,3013780071,8,N,,,8,Y,,,,N,,,,N,,,,N,,,8,N,Y,,,N,,,,N,,"drie,scrie",8,N,,,8,N,,,7,N,,"drie,scrie",308,351,1000,36,11213,1385 ST JOHNS PLACE,1385 MANAGEMENT LLC,1,4,8,8,1906,0,-73.9324,40.6709 +BK,3023447503,,N,,,,N,,,,N,,,18,N,,,18,N,,,18,N,Y,,18,N,Y,,18,N,,,18,N,,,,N,,,18,N,,,301,553,1003,34,11211,155 NORTH 4 STREET,155 NORTH 4TH STREET,1,5,18,20,1960,2679,-73.9586,40.7159 +BK,3050440056,80,Y,,,80,N,,,80,N,Y,"j51,scrie",80,N,,"j51,scrie",80,N,Y,"j51,scrie",80,N,Y,"drie,j51,scrie",81,N,Y,"j51,scrie",80,N,,"j51,scrie",80,N,,j51,81,N,,j51,,N,,"j51,scrie",309,802,1002,40,11225,271 HAWTHORNE STREET,"285 HAWTHORNE REALTY,",1,6,82,82,1927,0,-73.9512,40.6581 +BX,2029120001,14,Y,,,14,N,,,14,N,Y,j51,14,N,,j51,14,N,Y,j51,14,N,Y,j51,14,Y,,j51,14,Y,,j51,14,Y,,j51,14,N,,j51,14,Y,,j51,203,169,1000,16,10457,481 EAST 171 STREET,"ELLINGTON, DESMOND",1,5,13,15,1925,0,-73.903,40.8377 +BX,2024100037,8,N,,,8,Y,,,,N,,,,N,,,8,N,Y,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,201,65,3000,17,10451,332 EAST 151 STREET,AJIT S. ROCCE ENTERPR,1,4,8,8,1931,0,-73.9197,40.8179 +MN,1012440072,29,Y,,,29,N,,,28,N,Y,scrie,26,N,,scrie,26,N,Y,scrie,25,N,Y,scrie,25,N,Y,scrie,24,N,,scrie,24,N,,,23,N,,,24,N,,scrie,107,167,1000,6,10024,441 WEST END AVENUE,ARNAV INDUSTIRES INC,2,15,87,103,1926,0,-73.9803,40.7861 +SI,5035857501,14,N,,,13,N,,,10,N,Y,,9,N,,,8,N,,,16,N,Y,,6,N,Y,,6,N,,,6,N,,,6,N,,,4,N,,,502,114.02,2004,50,10306,100 COLFAX AVENUE,RAYMOND KOZMA,1,7,159,159,1961,110,-74.1078,40.5797 +MN,1015190043,16,N,,,16,Y,,,,Y,,scrie,,N,,scrie,,N,,scrie,,N,,scrie,,N,,scrie,1,N,,,1,N,,,1,N,,,,N,,,108,148.02,1000,5,10128,166 EAST 91 STREET,M & R ASSOCIATES,1,5,20,20,1930,0,-73.9525,40.7821 +MN,1004500001,9,N,,,9,N,,,8,N,Y,,7,N,,,7,N,Y,,7,N,Y,,7,N,Y,,6,N,,,6,N,,,6,N,,,4,N,,,103,38,7000,2,10003,132 2 AVENUE,SOS REALTY ASSOCIATES,1,6,15,16,1900,0,-73.9873,40.7286 +BK,3003290037,6,Y,,,6,N,,,6,N,Y,,,N,,,,N,,,6,N,Y,,5,N,Y,,,N,,,,N,,,,N,,,,N,,,306,51,1003,39,11231,200 COLUMBIA STREET,200 COLUMBIA REALTY L,1,4,6,7,1900,0,-74.0029,40.6853 +MN,1007690006,1,N,,,1,N,,,1,N,Y,scrie,2,N,,scrie,1,N,Y,scrie,1,N,Y,scrie,1,N,Y,scrie,1,N,,,1,N,,,1,N,,,1,N,,scrie,104,87,2000,3,10011,261 WEST 19 STREET,EIGHTH-19TH CO. LLC,1,5,16,18,1901,0,-73.9996,40.7428 +BK,3053970004,,N,,,,N,,,,N,,,,N,,,,N,,,1,N,Y,,,N,,,7,N,,,,N,,,,N,,,,N,,,312,484,2001,39,11218,308 DITMAS AVENUE,DANEAL REALTY CP,1,2,4,7,1931,0,-73.9755,40.6356 +BX,2028760095,21,Y,,,21,Y,,,21,Y,,j51,21,N,,j51,21,N,Y,j51,20,N,Y,j51,21,N,Y,j51,21,N,,j51,21,N,,420c,21,N,,420c,21,N,,420c,205,215.02,5000,14,10453,1658 DR M L KING JR BLVD,BEULAH XV PORTFOLIO H,1,5,21,21,1915,0,-73.9182,40.848 +BK,3013090001,3,N,,,3,N,,,3,N,Y,scrie,3,N,,scrie,3,N,Y,,3,N,Y,,2,N,Y,,2,N,,,3,N,,,3,N,,,3,N,,,309,319,3001,35,11225,985 NOSTRAND AVENUE,SARAN & ASSOCIATES IN,3,4,12,19,1908,0,-73.9507,40.6642 +BK,3039870012,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,,N,,,305,1166,1002,37,11208,724 LIBERTY AVENUE,YANKEL REALTY INC.,1,4,9,9,1925,0,-73.8829,40.6762 +MN,1013140021,40,Y,,,40,N,,,40,N,Y,scrie,38,N,,scrie,36,N,Y,scrie,34,N,Y,scrie,34,N,Y,scrie,34,N,,scrie,34,N,,,33,N,,,30,N,,"drie,scrie",106,88,2000,4,10017,747 2 AVENUE,ASN MURRAY HILL LLC,1,36,273,276,1972,0,-73.9734,40.7489 +BK,3047560022,6,Y,,,6,N,,,6,N,Y,,,N,,,6,N,Y,,6,N,Y,,6,N,Y,,6,N,,,,N,,,,N,,,6,N,,,317,928,1000,42,11236,631 EAST 96 STREET,EAST POINT CAPITAL LL,1,3,6,6,1940,0,-73.9125,40.6534 +BK,3012340026,6,Y,,,6,N,,,6,N,Y,,6,N,,,6,N,Y,,6,N,Y,,6,N,Y,,6,N,,,6,N,,,6,N,,,,N,,,308,317.01,2000,36,11216,852 PROSPECT PLACE,"852 PROSPECT REALTY,",1,3,6,6,1905,0,-73.9485,40.6739 +BK,3053580086,47,Y,,,47,N,,,47,N,Y,"j51,scrie",48,N,,"drie,j51,scrie",48,N,Y,"drie,j51,scrie",48,N,Y,"drie,j51,scrie",48,N,Y,"drie,j51,scrie",48,N,,"drie,j51,scrie",48,N,,j51,48,N,,j51,48,N,,"drie,j51,scrie",312,494,2001,39,11218,269 OCEAN PARKWAY,SCHWEID CHIAM,1,6,49,49,1941,0,-73.9734,40.6429 +BK,3060260078,6,Y,,,6,N,,,6,N,Y,,6,N,,,6,N,Y,,6,N,Y,,6,N,Y,,6,N,,,6,N,,,6,N,,,6,N,,,310,138,3000,43,11209,415 85 STREET,ARSENAKOS STELLA,1,3,6,6,1922,0,-74.0274,40.6235 +QN,4001730010,6,Y,,,6,N,,,5,N,Y,,5,N,,,5,N,Y,,5,N,Y,,5,N,Y,,5,N,,,5,N,,,5,N,,,5,N,,,402,185.02,3000,26,11377,47-39 43 STREET,A KADYLAK,1,3,6,6,1928,0,-73.9218,40.7403 +BK,3012030051,13,N,,,13,N,,,13,N,Y,,13,N,,,13,N,Y,,14,N,Y,scrie,14,N,Y,,14,N,,,14,N,,scrie,14,N,,,14,N,,scrie,308,313,1000,36,11216,1473 PACIFIC STREET,1473 LLC,1,4,14,14,1915,0,-73.9426,40.6775 +QN,4006270011,17,N,,,17,Y,,,18,Y,,scrie,18,N,,scrie,18,N,Y,scrie,18,N,Y,scrie,18,N,Y,scrie,18,N,,,18,N,,,19,N,,,19,N,,scrie,401,65.01,1000,22,11102,28-21 33 STREET,28-21 HOLDING LLC,1,4,19,19,1926,0,-73.9188,40.7669 +BK,3031570043,6,Y,,,6,N,,,6,N,Y,,6,N,,,6,N,Y,,6,N,Y,,6,Y,Y,,2,N,,,2,N,,,2,N,,,2,N,,,304,425,3003,34,11206,263 MELROSE STREET,MELROSE RESIDENTS LLC,1,3,6,6,1931,0,-73.93,40.7021 +MN,1015620042,13,Y,,,13,N,,,14,N,Y,j51,9,N,,j51,9,N,Y,,9,N,Y,,9,N,Y,,9,N,,,9,N,,,9,N,,,9,N,,,108,136,1001,5,10028,408 EAST 83 STREET,408 EAST 83 REALTY LL,1,5,20,20,1930,0,-73.9502,40.7744 diff --git a/who-owns-what.yml b/who-owns-what.yml index f1af7207f..05fa4b20e 100644 --- a/who-owns-what.yml +++ b/who-owns-what.yml @@ -3,6 +3,7 @@ dependencies: # These are NYCDB datasets needed by the SQL scripts. - pluto_latest - rentstab_summary + - rentstab - rentstab_v2 - marshal_evictions - hpd_registrations @@ -20,6 +21,8 @@ api_dependencies: - dob_violations - ecb_violations - dobjobs + - rentstab + - rentstab_v2 oca_s3_objects: - "public/oca_addresses_with_bbl.csv" oca_pre_sql: @@ -45,4 +48,6 @@ extra_nycdb_test_data: # create ourselves via factories. - "tests/data/acris_*.csv" - "tests/data/oca_*.csv" - - "tests/data/rentstab_counts_from_doffer_2021.csv" + - "tests/data/rentstab_counts_from_doffer_2022.csv" + - "tests/data/taxbills_joined.csv" + - "tests/data/hpd_complaints_and_problems.csv" diff --git a/wow/sql/address_indicatorhistory.sql b/wow/sql/address_indicatorhistory.sql index ca37b4639..0a79897b4 100644 --- a/wow/sql/address_indicatorhistory.sql +++ b/wow/sql/address_indicatorhistory.sql @@ -73,6 +73,45 @@ WITH TIME_SERIES AS ( FROM OCA_EVICTIONS_MONTHLY WHERE BBL = %(bbl)s AND MONTH >= '2017-01' + ), + + RENTSTAB_DATA as ( + select * + from RENTSTAB + full join RENTSTAB_V2 using(UCBBL) + where UCBBL = %(bbl)s + ), + + RENTSTABUNITS AS ( + select '2007-01' as month, uc2007 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2008-01' as month, uc2008 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2009-01' as month, uc2009 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2010-01' as month, uc2010 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2011-01' as month, uc2011 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2012-01' as month, uc2012 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2013-01' as month, uc2013 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2014-01' as month, uc2014 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2015-01' as month, uc2015 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2016-01' as month, uc2016 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2017-01' as month, uc2017 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2018-01' as month, uc2018 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2020-01' as month, uc2020 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2021-01' as month, uc2021 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA + union + select '2022-01' as month, uc2022 as RENTSTABILIZEDUNITS_TOTAL from RENTSTAB_DATA ) SELECT @@ -93,7 +132,8 @@ WITH TIME_SERIES AS ( CASE WHEN (SELECT UNITSRES < 11 FROM PLUTO) THEN NULL ELSE COALESCE(EVICTIONFILINGS, 0) - END AS EVICTIONFILINGS_TOTAL + END AS EVICTIONFILINGS_TOTAL, + COALESCE(RENTSTABILIZEDUNITS_TOTAL, 0) AS RENTSTABILIZEDUNITS_TOTAL -- ---------------------------------------------------------------------------------------------- FROM TIME_SERIES T LEFT JOIN HPDVIOLATIONS HV ON T.MONTH = HV.MONTH @@ -102,4 +142,5 @@ WITH TIME_SERIES AS ( LEFT JOIN REGULARDOBVIOLATIONS RDV ON T.MONTH = RDV.MONTH LEFT JOIN ECBVIOLATIONS EV ON T.MONTH = EV.MONTH LEFT JOIN OCAEVICTIONS OCA ON T.MONTH = OCA.MONTH - ORDER BY T.MONTH ASC + LEFT JOIN RENTSTABUNITS RS ON T.MONTH = RS.MONTH + ORDER BY T.MONTH ASC \ No newline at end of file