Replies: 9 comments 39 replies
-
It might make sense to define some well-known enumerations in the FeedTypes LookupName, such as IDX and BBO, so they're consistent across markets? It could be open with enumerations so providers could extend it with custom feeds. Proposal looks good, and it addresses requirements raised in meetings in that the solution should be simple and has to be able to filter both at the record (row) and field (column) level. If a given record shouldn't be in an IDX feed anymore, as shown above, IDX would not be in the FeedType array. And if it were, the fields to show in that context would be defined in the Field Resource. |
Beta Was this translation helpful? Give feedback.
-
We were preparing to extend our Field Resource like this. Yes, as long as the enumerations aren't closed. And a "yes please and thank you" for some well-known enumerations. We never got to discussing adding "FeedType" to resources. Because naming things is hard. But yeah, that works now we've got it named. |
Beta Was this translation helpful? Give feedback.
-
Absolutely we should start with a list of well-known enums: IDX, BBO, VOW, and I'm sure there are more. A business case for this is a data consumer with multiple feeds from a single data source, but each feed has different usage restrictions. This proposal would allow the data consumer to only ingest a single feed, but still have enough information from the data to use records and fields appropriately in the various contexts they are operating in. |
Beta Was this translation helpful? Give feedback.
-
We need to consider the use-cases where a record field visibility is conditional based the values within record and feed data access policies are contradictory on the display of data in that conditional field. Use Cases:
Example: (Completely theoretical) Field Resource presentation must show both feeds as having the feed type because the data could be shown for a record.
While there will be identical overlap when the property is Active and deduplication can occur, any other property status will have issues expressing the data access policy for the returned data.
The client could interpret this as A possible solution to this would be to send the resource uniquely for each feed in the one query for only those cases where the Field resource cannot expressly define the policy.
This does make the response payload larger but allows the data providers to communicate the policy without the need for complex client logic and still keeps the one query solution working. Server side implementations only need to implement this logic if they have need of conditional field access based on record's field value. |
Beta Was this translation helpful? Give feedback.
-
Thanks for all of the thoughts on this. With this being a timely, concrete business need expressed by a large portion of membership, we should assess whether we've covered the 90%+ business case with the current proposal. IDX, VOW, and BBO are that business case, with the NAR policy requiring that they be available to a broker participant in a single feed, if requested by the broker. If we have edge cases, let's ensure they are 1) backed up by verifiable examples from our customers and 2) big enough edge cases to warrant additional complexity in the solution for the primary business case. One example edge case is if the feed only provides a field when the resource is in a given part of its lifecycle. What's a specific example here? Are certain fields obscured from data feed consumers based on listing status? Expiration dates (and future closing dates) exist in BBO feeds and should be understood to not include public display usage in any situation. Pending and Closed status dates are included in IDX by default policy, and only obscured in non-disclosure counties and states. The MLS data provider can unilaterally obscure non-displayable data from a data consumer's IDX feed to make it simpler. And if a data consumer needs this simplicity because they can't parse the business rules of IDX/VOW/BBO, they can get an IDX-only feed for display and a separate BBO feed for back office tools. They are not required to get a combined feed, and most MLSs prefer to have multiple options here. This is important to keep in mind. This "one feed" solution, on the other hand, is supposed to make things efficient for the data consumer that can parse a complex feed. The solution may not even need to consider nulling out certain data. If the consumer gets a field's data for any of their feeds, they get the data and they need to follow the rules associated with the feed licenses they've agreed to (and are identified in the FeedType field). If they show inability to properly parse the feed based on IDX/VOW/BBO rules, it seems reasonable that the MLS would move the data consumer back to individual feeds. |
Beta Was this translation helpful? Give feedback.
-
So we have multiple vendors that mentioned they have MLS's using field level restrictions in their feeds during the transport meeting today. These were use use cases the mentioned they do it today with separate feeds:
|
Beta Was this translation helpful? Give feedback.
-
I think there are two additional questions to address regarding single feeds before we can move this forward? 1. Opting out of a feed on a per-record basisConsider the case where an agent or brokerage wants to opt out of a feed for one or more listings... We have fields to address similar cases at the moment, such as InternetEntireListingDisplayYN, which has a decent amount of usage currently, but does this cover all the cases? Opting out on a per-record basis could be done with the proposed "FeedRule" structure mentioned above, but for the Property Resource this might include hundreds of fields which then impact the payload size. Perhaps we want to consider adding another property like 2. PDAPFor PDAP feeds, there seem to be at least two ways we could potentially address this. There may be others:
In my opinion, it's better to define things explicitly, when possible. There are a couple of ways this could potentially be implemented?
Curious which fields people are using to determine access for PDAP now? Is it just ListOfficeId/Key, etc, or are there other fields used in practice as well? |
Beta Was this translation helpful? Give feedback.
-
Progress Update: Discussed on the August 14, 2023 Transport call. The group felt that the proposal with However, it does not address the case where a single vendor is pulling data on behalf of multiple participants within a given MLS. They still would have to pull once per participant/PDAP feed with separate credentials, which results in duplicate data being requested multiple times. The main thing to be addressed at this point is how to convey access information at the entity level, which could have different data attributes in a given case. For example ListOfficeId, ListOfficeKey, etc. One suggestion on the call was to normalize the access information for each feed into its own related record and then use a "custom" FeedType to indicate the access information. For example, maybe |
Beta Was this translation helpful? Give feedback.
-
This item has been approved by the Transport Workgroup as an RCP. Please make any additional comments on the following issue: #96 |
Beta Was this translation helpful? Give feedback.
-
This post is a follow up from RCP 035. The goal of RCP-035 was to propose a new resource that could be used to help meet the needs of the community by including metadata as data (the Usage resource) to communicate the permissions and allowed usage for each field sent to a data consumer. I would like to withdraw that RCP or heavily revise it as proposed below.
Synopsis
A new field called
FeedType
of type Multi Enum String should be included in every data resource and the fields resource. On data resources, this field will be used by the data provider to indicate which feed included the given record. On the fields resource (which is a metadata resource), this field will be used by the data provider to indicate whether the given field is included in a given feed type.Business Case
A business case for this is a data consumer with multiple feeds from a single data source, but each feed has different usage restrictions. This proposal would allow the data consumer to only ingest a single feed, but still have enough information from the data to use records and fields appropriately in the various contexts they are operating in.
Example
Hypothetically a data consumer could have two feeds from an MLS - IDX and BBO. The IDX feed contains only Active records, and of those records it only includes the
ListPrice
,StandardStatus
andUnparsedAddress
fields. The BBO feed contains only Closed records, and of those records it only includes theListPrice
,StandardStatus
,UnparsedAddress
, andCloseDate
fields.Currently the data consumer would have two feeds:
Feed 1:
Feed 2:
This proposal would present the data as a single feed that would look like this:
and the Fields Resource would look like this:
Given this setup, the data consumer knows that every data record with the "IDX" feed type can be used for "IDX" purposes, and that records with the "BBO" feed type can only be used for "BBO" purposes. Additionally, given the requirement that every record has the same schema, the "Fields" resource comunicates that even though the "CloseDate" field is present on an "IDX" record, that field cannot be used, since that record is not part of the "BBO" feed. Data providers could
null
out the value of the fields that the data consumer does not have permission to use.Proposal
New Field on Every Data Resource
A new field called
FeedType
of type Multi Enum String will denote which feeds a given record is included in. The values of this field will correspond to different feeds that a data consumer is approved for. These feed names do not necessarily need to be human readable, although it's important that data provider and consumer agree on the allowed usage of each feed.New Field in Fields Resource
A new field called
FeedType
of type Multi Enum String will denote which fields are included in a given feed. This field will have the same lookup values as theFeedType
field on the data resources.Beta Was this translation helpful? Give feedback.
All reactions